diff --git a/CHANGELOG b/CHANGELOG
index 7aec0f9..0ca5be6 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,16 @@
+----------------------------------------------------------------------------
+2020-06-02 V1.21
+1. 完善脱机烧录功能
+ - 烧录部分bin文件时,读回校验和软件CRC无问题,但硬件CRC有问题。
+ 原因:bin文件长度不是4字节整数倍时存在计算错误
+ 解决办法,补齐4字节再进行校验。
+ - 修改校验部分的代码,当FLM中有Verify校验函数时, 则优先用FLM中的Verify,而不是读回校验
+ - lua函数pg_reset() 支持带形参(复位时间ms)和无形参(缺省用20ms)
+ - 修复emmc磁盘文件的bug,解决STM8编程编程失败的问题
+ - 增加STM8AF模板,验证了STM8AF5288
+ - 修复SLOW低速时钟模式,发送32bit数据未插入延迟的bug。主要用于多路烧录,应对线长的情况。
+
----------------------------------------------------------------------------
2020-05-27 V1.20 【重大更新,发布1拖4脱机烧录功能,请使用PC软件 V0.4版】
1. 完善脱机烧录功能
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Firmware/app版本v1.20.txt b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Firmware/app版本v1.21.txt
similarity index 100%
rename from Doc/存放到eMMC磁盘的文件/H7-TOOL/Firmware/app版本v1.20.txt
rename to Doc/存放到eMMC磁盘的文件/H7-TOOL/Firmware/app版本v1.21.txt
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Firmware/h7_tool_app.bin b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Firmware/h7_tool_app.bin
index 804f11a..5e8ab9a 100644
Binary files a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Firmware/h7_tool_app.bin and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Firmware/h7_tool_app.bin differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_128.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_128.FLM
new file mode 100644
index 0000000..59ec9ba
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_128.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_16.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_16.FLM
new file mode 100644
index 0000000..0dd5646
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_16.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_256.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_256.FLM
new file mode 100644
index 0000000..5b2dd7f
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_256.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_256_BANK0.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_256_BANK0.FLM
new file mode 100644
index 0000000..b2ba3ef
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_256_BANK0.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_256_BANK1.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_256_BANK1.FLM
new file mode 100644
index 0000000..19b83fd
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_256_BANK1.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_32.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_32.FLM
new file mode 100644
index 0000000..eadc064
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_32.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_512.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_512.FLM
new file mode 100644
index 0000000..7fa7f02
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_512.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_512_BANK0.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_512_BANK0.FLM
new file mode 100644
index 0000000..82da076
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_512_BANK0.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_512_BANK1.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_512_BANK1.FLM
new file mode 100644
index 0000000..e4a9804
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_512_BANK1.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_64.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_64.FLM
new file mode 100644
index 0000000..92f841d
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_AP_64.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_CFG.FLM
new file mode 100644
index 0000000..e9bce6e
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_LD_2.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_LD_2.FLM
new file mode 100644
index 0000000..aa2ed15
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_LD_2.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_LD_4.FLM
new file mode 100644
index 0000000..0f481d6
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_LD_8.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_LD_8.FLM
new file mode 100644
index 0000000..a27826e
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M031_LD_8.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0516_AP_64.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0516_AP_64.FLM
new file mode 100644
index 0000000..9b28f54
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0516_AP_64.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_32.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_AP_32.FLM
similarity index 100%
rename from Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_32.FLM
rename to Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_AP_32.FLM
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_36.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_AP_36.FLM
similarity index 100%
rename from Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_36.FLM
rename to Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_AP_36.FLM
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_64.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_AP_64.FLM
similarity index 100%
rename from Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_64.FLM
rename to Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_AP_64.FLM
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_68.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_AP_68.FLM
similarity index 100%
rename from Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_68.FLM
rename to Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_AP_68.FLM
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_CFG.FLM
similarity index 100%
rename from Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_CFG.FLM
rename to Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_CFG.FLM
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_DAT.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_DAT.FLM
similarity index 100%
rename from Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_DAT.FLM
rename to Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_DAT.FLM
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_LD_4.FLM
similarity index 100%
rename from Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_LD_4.FLM
rename to Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_LD_4.FLM
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0519_AP_128.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0519_AP_128.FLM
new file mode 100644
index 0000000..1f184e5
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0519_AP_128.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0519_AP_64.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0519_AP_64.FLM
new file mode 100644
index 0000000..afdf46f
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0519_AP_64.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0519_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0519_CFG.FLM
new file mode 100644
index 0000000..a733d99
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0519_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0519_DAT.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0519_DAT.FLM
new file mode 100644
index 0000000..d587a32
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0519_DAT.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0519_LD_8.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0519_LD_8.FLM
new file mode 100644
index 0000000..6efd25e
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0519_LD_8.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M051_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M051_CFG.FLM
new file mode 100644
index 0000000..253cea9
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M051_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M051_DAT.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M051_DAT.FLM
new file mode 100644
index 0000000..0a18696
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M051_DAT.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M051_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M051_LD_4.FLM
new file mode 100644
index 0000000..c6ff3b8
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M051_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M052_AP_8.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M052_AP_8.FLM
new file mode 100644
index 0000000..1197b63
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M052_AP_8.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M054_AP_16.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M054_AP_16.FLM
new file mode 100644
index 0000000..b721cd6
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M054_AP_16.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0564_AP_128.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0564_AP_128.FLM
new file mode 100644
index 0000000..1b2f915
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0564_AP_128.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0564_AP_256.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0564_AP_256.FLM
new file mode 100644
index 0000000..7beddec
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0564_AP_256.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0564_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0564_CFG.FLM
new file mode 100644
index 0000000..95f8832
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0564_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0564_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0564_LD_4.FLM
new file mode 100644
index 0000000..67dc566
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0564_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M058_AP_32.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M058_AP_32.FLM
new file mode 100644
index 0000000..f2bd4b9
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M058_AP_32.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M2351_AP_512.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M2351_AP_512.FLM
new file mode 100644
index 0000000..b240813
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M2351_AP_512.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M2351_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M2351_LD_4.FLM
new file mode 100644
index 0000000..2f682f6
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M2351_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M2351_NS.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M2351_NS.FLM
new file mode 100644
index 0000000..25dc1d0
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M2351_NS.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M2351_NS_MKROM.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M2351_NS_MKROM.FLM
new file mode 100644
index 0000000..c4cdbe4
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M2351_NS_MKROM.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_128.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_128.FLM
new file mode 100644
index 0000000..f30aba7
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_128.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_16.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_16.FLM
new file mode 100644
index 0000000..19644af
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_16.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_192.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_192.FLM
new file mode 100644
index 0000000..bb243d1
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_192.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_256.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_256.FLM
new file mode 100644
index 0000000..7e552a4
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_256.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_32.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_32.FLM
new file mode 100644
index 0000000..e711557
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_32.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_64.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_64.FLM
new file mode 100644
index 0000000..1276932
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_AP_64.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_CFG.FLM
new file mode 100644
index 0000000..cd8e70a
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_LD_4.FLM
new file mode 100644
index 0000000..fbc7e89
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M251_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M261_AP_512.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M261_AP_512.FLM
new file mode 100644
index 0000000..49e46cc
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M261_AP_512.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M261_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M261_LD_4.FLM
new file mode 100644
index 0000000..a897055
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M261_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_AP_128.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_AP_128.FLM
new file mode 100644
index 0000000..a59db7e
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_AP_128.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_AP_256.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_AP_256.FLM
new file mode 100644
index 0000000..1695cf5
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_AP_256.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_AP_40.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_AP_40.FLM
new file mode 100644
index 0000000..7687c15
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_AP_40.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_AP_72.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_AP_72.FLM
new file mode 100644
index 0000000..4e82939
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_AP_72.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_CFG.FLM
new file mode 100644
index 0000000..c72e557
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_LD_4.FLM
new file mode 100644
index 0000000..6385fe6
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M451_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_AP_128.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_AP_128.FLM
new file mode 100644
index 0000000..7f6da37
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_AP_128.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_AP_256.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_AP_256.FLM
new file mode 100644
index 0000000..fc8027b
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_AP_256.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_AP_512.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_AP_512.FLM
new file mode 100644
index 0000000..c3e5b5c
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_AP_512.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_CFG.FLM
new file mode 100644
index 0000000..a7caa4b
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_LD_4.FLM
new file mode 100644
index 0000000..b05e4b9
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_SPIFLASH.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_SPIFLASH.FLM
new file mode 100644
index 0000000..ca9ad57
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/M481_SPIFLASH.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/MR63_AP_512.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/MR63_AP_512.FLM
new file mode 100644
index 0000000..d229ea6
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/MR63_AP_512.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/MR63_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/MR63_LD_4.FLM
new file mode 100644
index 0000000..f245766
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/MR63_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_AP_16.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_AP_16.FLM
new file mode 100644
index 0000000..3f2d887
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_AP_16.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_AP_17_5.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_AP_17_5.FLM
new file mode 100644
index 0000000..1d122a9
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_AP_17_5.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_AP_32.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_AP_32.FLM
new file mode 100644
index 0000000..fed6563
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_AP_32.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_AP_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_AP_4.FLM
new file mode 100644
index 0000000..89f37bb
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_AP_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_AP_8.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_AP_8.FLM
new file mode 100644
index 0000000..032a1ac
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_AP_8.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_CFG.FLM
new file mode 100644
index 0000000..a636922
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_LD_2.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_LD_2.FLM
new file mode 100644
index 0000000..1f49f91
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_LD_2.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_LD_2_5.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_LD_2_5.FLM
new file mode 100644
index 0000000..360ca89
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini51_LD_2_5.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini57_AP_29_5.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini57_AP_29_5.FLM
new file mode 100644
index 0000000..ccf9f65
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini57_AP_29_5.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini57_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini57_CFG.FLM
new file mode 100644
index 0000000..326456e
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini57_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini57_LD_2.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini57_LD_2.FLM
new file mode 100644
index 0000000..96fe9d9
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Mini57_LD_2.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NDA102_AP_29_5.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NDA102_AP_29_5.FLM
new file mode 100644
index 0000000..5039cbb
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NDA102_AP_29_5.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NDA102_LD_2.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NDA102_LD_2.FLM
new file mode 100644
index 0000000..ce66937
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NDA102_LD_2.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_AP_16.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_AP_16.FLM
new file mode 100644
index 0000000..d8458d7
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_AP_16.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_AP_17_5.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_AP_17_5.FLM
new file mode 100644
index 0000000..db16300
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_AP_17_5.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_AP_29_5.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_AP_29_5.FLM
new file mode 100644
index 0000000..d611176
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_AP_29_5.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_AP_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_AP_4.FLM
new file mode 100644
index 0000000..79a120a
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_AP_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_AP_8.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_AP_8.FLM
new file mode 100644
index 0000000..ac21803
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_AP_8.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_CFG.FLM
new file mode 100644
index 0000000..4319650
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_LD_2.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_LD_2.FLM
new file mode 100644
index 0000000..2185455
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1120_LD_2.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1200_AP_17_5.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1200_AP_17_5.FLM
new file mode 100644
index 0000000..3ddb6c4
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1200_AP_17_5.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1200_AP_8.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1200_AP_8.FLM
new file mode 100644
index 0000000..f5283d5
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1200_AP_8.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1200_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1200_CFG.FLM
new file mode 100644
index 0000000..bbcb002
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1200_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1200_LD_2.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1200_LD_2.FLM
new file mode 100644
index 0000000..2a25b26
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1200_LD_2.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1230_AP_48.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1230_AP_48.FLM
new file mode 100644
index 0000000..328a417
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1230_AP_48.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1230_AP_64.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1230_AP_64.FLM
new file mode 100644
index 0000000..3e11580
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1230_AP_64.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1230_LD_7_5.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1230_LD_7_5.FLM
new file mode 100644
index 0000000..d07c692
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1230_LD_7_5.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1320_AP_32.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1320_AP_32.FLM
new file mode 100644
index 0000000..9dd54ba
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1320_AP_32.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1320_AP_36.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1320_AP_36.FLM
new file mode 100644
index 0000000..057ca21
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1320_AP_36.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1320_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1320_CFG.FLM
new file mode 100644
index 0000000..0aa10e1
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1320_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1320_DAT.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1320_DAT.FLM
new file mode 100644
index 0000000..47f5fdd
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1320_DAT.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1320_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1320_LD_4.FLM
new file mode 100644
index 0000000..ccf5680
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1320_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1330_AP_32.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1330_AP_32.FLM
new file mode 100644
index 0000000..c3315e7
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1330_AP_32.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1330_AP_64.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1330_AP_64.FLM
new file mode 100644
index 0000000..e714505
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1330_AP_64.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1330_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1330_CFG.FLM
new file mode 100644
index 0000000..b51399d
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1330_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1330_DAT.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1330_DAT.FLM
new file mode 100644
index 0000000..479ed36
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1330_DAT.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1330_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1330_LD_4.FLM
new file mode 100644
index 0000000..188e0ff
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1330_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_AP_128.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_AP_128.FLM
new file mode 100644
index 0000000..1341d79
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_AP_128.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_AP_32.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_AP_32.FLM
new file mode 100644
index 0000000..d97847e
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_AP_32.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_AP_64.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_AP_64.FLM
new file mode 100644
index 0000000..5c71bab
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_AP_64.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_CFG.FLM
new file mode 100644
index 0000000..801a18e
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_DAT.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_DAT.FLM
new file mode 100644
index 0000000..ecd5f64
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_DAT.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_LD_4.FLM
new file mode 100644
index 0000000..e63c983
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_LD_8.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_LD_8.FLM
new file mode 100644
index 0000000..5f6f49a
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1500_LD_8.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1810_AP_29_5.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1810_AP_29_5.FLM
new file mode 100644
index 0000000..7127040
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1810_AP_29_5.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1810_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1810_CFG.FLM
new file mode 100644
index 0000000..3dbce4c
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1810_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1810_LD_2.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1810_LD_2.FLM
new file mode 100644
index 0000000..c1ffcb5
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1810_LD_2.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1820_AP_17_5.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1820_AP_17_5.FLM
new file mode 100644
index 0000000..d68df37
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1820_AP_17_5.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1820_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1820_CFG.FLM
new file mode 100644
index 0000000..18f9cf5
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1820_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1820_LD_2.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1820_LD_2.FLM
new file mode 100644
index 0000000..6cdd1ec
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NM1820_LD_2.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029GE_AP_256.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029GE_AP_256.FLM
new file mode 100644
index 0000000..fa85296
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029GE_AP_256.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029GE_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029GE_LD_4.FLM
new file mode 100644
index 0000000..573cd50
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029GE_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_AP_128.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_AP_128.FLM
new file mode 100644
index 0000000..9e0157a
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_AP_128.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_AP_16.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_AP_16.FLM
new file mode 100644
index 0000000..85c93fe
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_AP_16.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_AP_32.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_AP_32.FLM
new file mode 100644
index 0000000..3f04c97
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_AP_32.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_AP_64.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_AP_64.FLM
new file mode 100644
index 0000000..2151be8
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_AP_64.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_AP_68.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_AP_68.FLM
new file mode 100644
index 0000000..1198e3f
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_AP_68.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_LD_2.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_LD_2.FLM
new file mode 100644
index 0000000..93cdcc0
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_LD_2.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_LD_4.FLM
new file mode 100644
index 0000000..3ac164d
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_LD_8.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_LD_8.FLM
new file mode 100644
index 0000000..ad494a0
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC029_LD_8.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_AP_128.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_AP_128.FLM
new file mode 100644
index 0000000..c8215fd
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_AP_128.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_AP_32.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_AP_32.FLM
new file mode 100644
index 0000000..045dbee
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_AP_32.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_AP_36.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_AP_36.FLM
new file mode 100644
index 0000000..88040e1
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_AP_36.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_AP_64.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_AP_64.FLM
new file mode 100644
index 0000000..a8b792d
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_AP_64.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_AP_68.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_AP_68.FLM
new file mode 100644
index 0000000..fe08449
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_AP_68.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_CFG.FLM
new file mode 100644
index 0000000..8cef529
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_DAT.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_DAT.FLM
new file mode 100644
index 0000000..520e13c
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_DAT.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_LD_4.FLM
new file mode 100644
index 0000000..1ef487e
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_LD_8.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_LD_8.FLM
new file mode 100644
index 0000000..5e4aa10
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC100_LD_8.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC121_AP_32.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC121_AP_32.FLM
new file mode 100644
index 0000000..318cdf8
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC121_AP_32.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC121_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC121_CFG.FLM
new file mode 100644
index 0000000..e706a99
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC121_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC121_LD_4_5.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC121_LD_4_5.FLM
new file mode 100644
index 0000000..42cb4c2
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC121_LD_4_5.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC126_AP_128.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC126_AP_128.FLM
new file mode 100644
index 0000000..7b8e6d3
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC126_AP_128.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC126_AP_256.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC126_AP_256.FLM
new file mode 100644
index 0000000..9aa698b
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC126_AP_256.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC126_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC126_CFG.FLM
new file mode 100644
index 0000000..50303d0
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC126_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC126_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC126_LD_4.FLM
new file mode 100644
index 0000000..49b9e6a
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC126_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC1311_AP_32.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC1311_AP_32.FLM
new file mode 100644
index 0000000..57a9cdb
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC1311_AP_32.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC1311_AP_36.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC1311_AP_36.FLM
new file mode 100644
index 0000000..c263a76
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC1311_AP_36.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC1311_AP_64.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC1311_AP_64.FLM
new file mode 100644
index 0000000..ee14a72
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC1311_AP_64.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC1311_AP_68.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC1311_AP_68.FLM
new file mode 100644
index 0000000..957de5d
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC1311_AP_68.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC1311_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC1311_LD_4.FLM
new file mode 100644
index 0000000..e058b33
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC1311_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_AP_128.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_AP_128.FLM
new file mode 100644
index 0000000..cc0c775
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_AP_128.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_AP_32.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_AP_32.FLM
new file mode 100644
index 0000000..18a16a3
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_AP_32.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_AP_64.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_AP_64.FLM
new file mode 100644
index 0000000..bdbbd83
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_AP_64.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_CFG.FLM
new file mode 100644
index 0000000..da90e4f
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_DAT.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_DAT.FLM
new file mode 100644
index 0000000..8663c42
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_DAT.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_LD_4.FLM
new file mode 100644
index 0000000..3ea9b7e
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_LD_8.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_LD_8.FLM
new file mode 100644
index 0000000..fd462dd
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC200_LD_8.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_AP_128.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_AP_128.FLM
new file mode 100644
index 0000000..6e1fad7
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_AP_128.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_AP_256.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_AP_256.FLM
new file mode 100644
index 0000000..8bcac2f
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_AP_256.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_AP_384.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_AP_384.FLM
new file mode 100644
index 0000000..adbaac5
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_AP_384.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_AP_512.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_AP_512.FLM
new file mode 100644
index 0000000..7382fcd
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_AP_512.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_CFG.FLM
new file mode 100644
index 0000000..eb56ea6
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_LD_16.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_LD_16.FLM
new file mode 100644
index 0000000..bf1af93
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC400_LD_16.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC505_SPIFLASH.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC505_SPIFLASH.FLM
new file mode 100644
index 0000000..1756484
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/NUC505_SPIFLASH.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_AP_123.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_AP_123.FLM
new file mode 100644
index 0000000..69a6ba4
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_AP_123.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_AP_16.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_AP_16.FLM
new file mode 100644
index 0000000..77503f5
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_AP_16.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_AP_32.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_AP_32.FLM
new file mode 100644
index 0000000..3c51a7f
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_AP_32.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_AP_64.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_AP_64.FLM
new file mode 100644
index 0000000..b89afca
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_AP_64.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_AP_8.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_AP_8.FLM
new file mode 100644
index 0000000..a97ed9f
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_AP_8.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_CFG.FLM
new file mode 100644
index 0000000..68e7b29
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_DAT.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_DAT.FLM
new file mode 100644
index 0000000..a4d9aed
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_DAT.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_LD_4.FLM
new file mode 100644
index 0000000..0c82f26
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano100_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_AP_16.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_AP_16.FLM
new file mode 100644
index 0000000..87dbab8
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_AP_16.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_AP_32.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_AP_32.FLM
new file mode 100644
index 0000000..2afe965
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_AP_32.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_AP_64.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_AP_64.FLM
new file mode 100644
index 0000000..daeb61a
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_AP_64.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_CFG.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_CFG.FLM
new file mode 100644
index 0000000..6f6fbef
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_CFG.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_DAT.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_DAT.FLM
new file mode 100644
index 0000000..2e7eb7c
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_DAT.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_LD_4.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_LD_4.FLM
new file mode 100644
index 0000000..fedbf97
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/Nano103_LD_4.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/TF5100_AP_48.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/TF5100_AP_48.FLM
new file mode 100644
index 0000000..3b7ee52
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/TF5100_AP_48.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/TF5100_AP_64.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/TF5100_AP_64.FLM
new file mode 100644
index 0000000..fff5253
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/TF5100_AP_64.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/TF5100_LD_7_5.FLM b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/TF5100_LD_7_5.FLM
new file mode 100644
index 0000000..01e3300
Binary files /dev/null and b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/FLM/TF5100_LD_7_5.FLM differ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_64.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_64.lua
deleted file mode 100644
index a73b122..0000000
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_64.lua
+++ /dev/null
@@ -1,58 +0,0 @@
-
--------------------------------------------------------
--- ļ : STM32F0xx_64.lua
--- : V1.0 2020-04-28
--- ˵ :
--------------------------------------------------------
-function config_cpu(void)
- CHIP_TYPE = "SWD" --ָӿ: "SWD", "SWIM", "SPI", "I2C", "UART"
-
- AlgoFile_FLASH = "0:/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_64.FLM.FLM"
- AlgoFile_OTP = ""
- AlgoFile_OPT = "0:/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_CFG.FLM"
- AlgoFile_QSPI = ""
- AlgoFile_DAT = "0:/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_DAT.FLM"
-
- FLASH_ADDRESS = 0x00000000 --CPUڲFLASHʼַ
-
- DATA_ADDRESS = 0x0001F000 --CPUڲFLASHʼַ
-
-
- RAM_ADDRESS = 0x20000000 --CPUڲRAMʼַ
-
- --Flash㷨ļڴַʹС
- AlgoRamAddr = RAM_ADDRESS
- AlgoRamSize = 4 * 1024
-
- MCU_ID = 0x0BB11477
-
- UID_ADDR = 0x1FFFF7AC --UIDַͬCPUͬ
- UID_BYTES = 12
-
- OB_ADDRESS = "00300000 00300001 00300002 00300003 00300004 00300005 00300006 00300007"
-
- OB_SECURE_OFF = "FF FF FF FF FF FF FF FF" --SECURE_ENABLE = 0ʱϺдֵ()
- OB_SECURE_ON = "FD FF FF FF FF FF FF FF" --SECURE_ENABLE = 1ʱϺдֵ(оƬ)
-
- --ж϶д(WRP = Write protection) 1101
- OB_WRP_ADDRESS = {0x00300000} --ڴַ
- OB_WRP_MASK = {0x20} --
- OB_WRP_VALUE = {0x20} --Ƚϣȱʾûб
-end
-
-function init_cpu(void)
- local reg
- local re
-
- --SYS_UnlockReg();
- print(pg_write32(0x50000100, 0x59))
- print(pg_write32(0x50000100, 0x16))
- print(pg_write32(0x50000100, 0x88))
-
- --FMC_Open
- --FMC->ISPCON |= FMC_ISPCON_ISPEN_Msk;
- re,reg = pg_read32(0x5000C000)
- pg_write32(0x5000C000, reg | 1)
-end
-
---------------------------------------------------------------
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_68.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_68.lua
deleted file mode 100644
index 4bf770d..0000000
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_68.lua
+++ /dev/null
@@ -1,42 +0,0 @@
-
--------------------------------------------------------
--- ļ : STM32F0xx_64.lua
--- : V1.0 2020-04-28
--- ˵ :
--------------------------------------------------------
-function config_cpu(void)
- CHIP_TYPE = "SWD" --ָӿ: "SWD", "SWIM", "SPI", "I2C", "UART"
-
- AlgoFile_FLASH = "0:/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_AP_68.FLM.FLM"
- AlgoFile_OTP = ""
- AlgoFile_OPT = "0:/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_CFG.FLM"
- AlgoFile_QSPI = ""
- AlgoFile_DAT = "0:/H7-TOOL/Programmer/Device/Nuvoton/M0518/M0518_DAT.FLM"
-
- FLASH_ADDRESS = 0x00000000 --CPUڲFLASHʼַ
-
- DATA_ADDRESS = 0x0001F000 --CPUڲFLASHʼַ
-
- RAM_ADDRESS = 0x20000000 --CPUڲRAMʼַ
-
- --Flash㷨ļڴַʹС
- AlgoRamAddr = RAM_ADDRESS
- AlgoRamSize = 4 * 1024
-
- MCU_ID = 0x0BB11477
-
- UID_ADDR = 0x1FFFF7AC --UIDַͬCPUͬ
- UID_BYTES = 12
-
- OB_ADDRESS = "00300000 00300001 00300002 00300003 00300004 00300005 00300006 00300007"
-
- OB_SECURE_OFF = "FF FF FF FF FF FF FF FF" --SECURE_ENABLE = 0ʱϺдֵ()
- OB_SECURE_ON = "FD FF FF FF FF FF FF FF" --SECURE_ENABLE = 1ʱϺдֵ(оƬ)
-
- --ж϶д(WRP = Write protection) 1101
- OB_WRP_ADDRESS = {0x00300000} --ڴַ
- OB_WRP_MASK = {0x20} --
- OB_WRP_VALUE = {0x20} --Ƚϣȱʾûб
-end
-
---------------------------------------------------------------
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/Nuvoton.NuMicro_DFP.pdsc b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/Nuvoton.NuMicro_DFP.pdsc
new file mode 100644
index 0000000..56e2898
--- /dev/null
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/Nuvoton/Nuvoton.NuMicro_DFP.pdsc
@@ -0,0 +1,13858 @@
+
+
+ Nuvoton
+ http://www.nuvoton.com/hq/enu/Documents/KEILSoftwarePack
+ NuMicro_DFP
+ Nuvoton ARM Cortex-M NuMicro Family Device Support
+
+
+
+ Add MR63, M032, NUC1311, TF5103, NM18107Y, NM18202Y devices, update M451 svd file
+
+
+ Add M261 series, M480, M031 device, update NM1000 series device
+
+
+ Update M2351 Flash algorithm, M251/M252 series device and add M251 svd files
+
+
+ Add system and startup files
+
+
+ 1. Add M480 series part no.
+ 2. Remove device driver file
+ 3. Remove ISD and NuVoice Family
+
+
+ 1. Add M23 and M4 family
+ 2. Add M031, NUC029DE/EE/GE, NUC1261, M4521, NM1230, NDA102, M251/M252 series device
+
+
+ M2351 secure and non-secure region defalt value
+
+
+ Improved PDSC file, adding include paths for device peripherals and new date feature and update svd file
+
+
+ Add M2351 and NUC2201 series device and svd file and update NUC100, NUC200, M480, NUC505 series example code
+
+
+ Add M0564, NUC121, NUC125, NUC126, Mini57 and M480 series example code
+
+
+ Rename Generic series
+
+
+ Add Nano103, NM1120, NM1330, NM1820 series svd file and update M051, M058S, Mini51, Nano100bn, Nano103, NUC123, NUC200, NUC505 series example code
+
+
+ Add NM1200 series example code and update svd file
+
+
+ Add Nano103, NM1120, NM1320, NM1330, NM1820 chip, update M0519, NUC230_240, NUC472, M451 series example code
+
+
+ Add Mini55 chip, update Mini58, NUC100, NUC122, NUC123, Nano100AN, Nano112, NUC200, NUC230_240 series example code
+
+
+ Add NUC122, M058S, Mini58, M0519 series example code
+
+
+ Add M451, NUC100, NUC200, NUC123, NUC029, M0518, NUC131, NANO100BN, NUC505 series example code
+
+
+ Add ISD9100, ISD9300, N571, N572 svd file and M4LED chip series
+
+
+ Add (M051, Mini51, Nano112, NUC240, NUC472) example code and new chip series
+
+
+ First Release version of NuMicro Device Family Pack.
+
+
+
+
+
+ Nuvoton
+ Device Support
+ Device Family Package Nuvoton
+ NuMicro
+
+
+
+
+
+
+
+ The NuMicro Generic Series 32-bit microcontroller
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The Nuvoton Cortex-M0 based NuMicro M031/M032 series MCU features 1.8 ~ 3.6V operating voltage, running up to 48 MHz,
+ and provides a good solution for the applications that need low-voltage interface connection operation. This product can be applied to mobile devices,
+ application processor connected peripheral controllers, IoT sensor devices, motor control, industrial control, and consumer devices.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro M051 series is a 32-bit microcontroller with embedded ARM Cortex-M0 core for industrial control and applications which need
+rich communication interfaces. The Cortex-M0 is the newest ARM embedded processor with 32-bit performance and at a cost equivalent to traditional 8-bit microcontroller.
+The NuMicro M051 series includes M052, M054, M058 and M0516 families.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro M058S is a 32-bit microcontroller with embedded ARM Cortex-M0 core for industrial control and applications which need rich communication interfaces.
+The Cortex-M0 is ARM embedded processor with 32-bit performance and cost-effective microcontroller.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro Mini51 series 32-bit microcontroller is embedded with ARM Cortex-M0 core for industrial control and applications
+which require high performance, high integration, and low cost. The Cortex-M0 is the newest ARM embedded processor with 32-bit performance
+at a cost equivalent to the traditional 8-bit microcontroller.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro Mini57 series 32-bit microcontrollers are embedded with Cortex-M0 core for industrial applications which need high performance, high integration, and low cost.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro Mini58 series 32-bit microcontroller is embedded with ARMR Cortex-M0 core for industrial control and applications which
+require high performance, high integration, and low cost. The Cortex-M0 is the newest ARMR embedded processor with 32-bit performance at a cost equivalent
+to the traditional 8-bit microcontroller
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro Mini55 series 32-bit microcontroller is embedded with Cortex-M0 core for industrial control and applications which require high performance, high integration, and low cost.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NDA102 series 32-bit microcontrollers are embedded with Cortex-M0 core for industrial applications which need high performance, high integration, and low cost.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC029 series is a 32-bit microcontroller with embedded ARM Cortex-M0 core with 32-bit performance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC029 series is a 32-bit microcontroller with embedded ARM Cortex-M0 core with 32-bit performance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC029 series is a 32-bit microcontroller with embedded ARM Cortex-M0 core with 32-bit performance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC029 series is a 32-bit microcontroller with embedded ARM Cortex-M0 core with 32-bit performance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC029 series is a 32-bit microcontroller with embedded ARM Cortex-M0 core with 32-bit performance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC100 Series 32-bit microcontroller is embedded with ARM Cortex-M0 core for industrial control and applications that
+need rich communication interfaces. The Cortex-M0 is the newest ARM embedded processor with 32-bit performance and at a cost equivalent to traditional
+8-bit microcontroller. The NuMicro NUC100 Series includes NUC100, NUC120, NUC130 and NUC140 product lines.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC131 CAN Line is embedded with the Cortex-M0 core running up to 50 MHz and features 36K/68K bytes flash, 8K bytes SRAM,
+and 4 Kbytes loader ROM for the ISP. It is also equipped with plenty of peripheral devices, such as Timers, Watchdog Timer (WDT), Window Watchdog Timer (WWDT),
+ UART, SPI, I2C, PWM, GPIO, LIN, CAN, 800 kSPS high speed 12-bit ADC, Low Voltage Reset Controller and Brown-out Detector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC1311 is embedded with the Cortex-M0 core running up to 50 MHz and features 36K/68K bytes flash, 8K bytes SRAM,
+and 4 Kbytes loader ROM for the ISP.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC122 series are 32-bit microcontrollers with Cortex-M0 core runs up to 60 MHz, up to 32K/64K-byte embedded flash,
+4K/8K-byte embedded SRAM, and 4K-byte loader ROM for the In System Program (ISP) function. It also integrates Timers, Watchdog Timer, RTC, UART,
+SPI, I2C, PWM Timer, GPIO, USB 2.0 Full Speed Device, Low Voltage Reset Controller and Brownout Detector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC123 series 32-bit microcontrollers are embedded with Cortex-M0 core running up to 72 MHz, up to 36K/68K-byte embedded flash,
+12K/20K-byte embedded SRAM, and 4K-byte loader ROM for the ISP. It also integrates Timers, Watchdog Timer, Windowed Watchdog Timer, PDMA with CRC calculation unit,
+UART, SPI/MICROWIRE, I2C, I2S, PWM Timer, GPIO, PS/2, USB 2.0 FS Device, 10-bit ADC, Low Voltage Reset Controller and Brown-out Detector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC121/125 series is a 32-bit Cortex-M0 microcontroller with USB 2.0 Full-speed device, a 12-bit ADC and 4 sets of 6-channel BPWM.
+The NUC121/125 series provides the high 50 MHz operating speed, 8 Kbytes SRAM, 8 USB endpoints and 24 channels of BPWM, which make it powerful in USB communication and data processing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC126 series microcontroller based on the Cortex-M0 core operates at up to 72 MHz.
+With its crystal-less USB 2.0 FS interface, it is able to generate precise frequency required by USB protocol without the need of external crystal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC1261 series microcontroller based on the Cortex-M0 core operates at up to 72 MHz. With its crystal-less USB 2.0 FS interface,
+it is able to generate precise frequency required by USB protocol without the need of external crystal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro M0518 is embedded with the Cortex-M0 core running up to 50 MHz and features 36K/68K bytes flash, 8K bytes SRAM, and 4 Kbytes loader ROM for the ISP.
+ It is also equipped with plenty of peripheral devices, such as Timers, Watchdog Timer (WDT), Window Watchdog Timer (WWDT), UART, SPI, I2C, PWM, GPIO, LIN, 800 kSPS high speed 12-bit ADC, Low Voltage Reset Controller and Brown-out Detector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro M0519 Series 32-bit microcontroller is embedded with the newest ARM Cortex-M0 core at a cost equivalent to traditional
+8-bit microcontroller for industrial control and applications which need high performance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro M0564 series microcontroller based on the Cortex-M0 core operates at up to 72 MHz.
+It features adjustable VDDIO pins for specific I/O pins with a wide range of voltage from 1.8V to 5.5V for various operating voltages of external components,
+a unique high-speed PWM with clock frequency up to 144 MHz for precision control, and an integrated hardware divider to speed up the calculation for the control algorithms.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC200 Series 32-bit microcontrollers is embedded with the newest ARM Cortex-M0 core with a cost equivalent to traditional 8-bit MCU
+for industrial control and applications requiring rich communication interfaces. The NuMicro NUC200 Series includes NUC200 and NUC220 product lines.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC2201 series 32-bit microcontrollers are embedded with the ARM Cortex-M0 core with a cost equivalent to traditional 8-bit MCU for industrial control and applications requiring rich communication interfaces.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC230_240 Series 32-bit microcontrollers is embedded with the newest ARM Cortex-M0 core with a cost equivalent to traditional 8-bit MCU
+for industrial control and applications requiring rich communication interfaces. The NuMicro NUC230_240 Series includes NUC230 and NUC240 product lines.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The Nano100 series provides low power voltage, low power consumption, low standby current, high integration peripherals,
+high-efficiency operation, fast wake-up function and lowest cost 32-bit microcontrollers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The Nano100 series ultra-low power 32-bit microcontroller is embedded with Cortex-M0 core operated at a wide voltage range from 1.8V to 3.6V and runs up to 42 MHz frequency.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The Nano112 series provides low power voltage, low power consumption, low standby current, high integration peripherals,
+high-efficiency operation, fast wake-up function and the lowest cost 32-bit microcontrollers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The Nano103 series ultra-low-power 32-bit microcontroller embeded with Cortex-M0 core operates at low voltage ranged from 1.8V to 3.6V and runs up to 36 MHz frequency.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The TF5100 series 32-bit microcontroller embeded with Cortex-M0 core.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NM1120 series 32-bit microcontroller embeded with Cortex-M0 core.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NM1200 series 32-bit microcontroller embeded with Cortex-M0 core.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NM1230 series 32-bit microcontroller embeded with Cortex-M0 core.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NM1320 series 32-bit microcontroller embeded with Cortex-M0 core.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NM1330 series 32-bit microcontroller embeded with Cortex-M0 core.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NM1500 Series 32-bit microcontroller is embedded with the newest ARM Cortex-M0 core at a cost equivalent to traditional
+8-bit microcontroller for industrial control and applications which need high performance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NM1810 series 32-bit microcontroller embeded with Cortex-M0 core.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NM1820 series 32-bit microcontroller embeded with Cortex-M0 core.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro M251 series is a 32-bit microcontroller with embedded ARM Cortex-M23 core.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro M2351 series is a 32-bit microcontroller with embedded ARM Cortex-M23 core.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro M261 series is a 32-bit microcontroller with embedded ARM Cortex-M23 core.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro MR63 series is a 32-bit microcontroller with embedded ARM Cortex-M23 core.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC442 and NUC472 with embedded Cortex-M4F core with DSP extensions and a Floating Point Unit runs up to 84 MHz
+with 256/512 Kbytes embedded flash memories and 64K-byte embedded SRAM. It is also equipped with plenty of peripheral devices, such as Timers, Watchdog Timers,
+RTC, PDMA, EBI, UART, Smart Card interface, SD HOST, SPI, I2C, I2S, PWM Timer, GPIO, LIN, CAN, PS/2, 12-bit ADC, analog comparator, operational amplifier,
+temperature sensor, Low Voltage Reset Controller and Brown-out Detector. The NUC442 also provides USB 2.0 full-speed Device/Host/OTG, USB 2.0 HS device and
+security functions such as tamper detection, symmetric cryptographic accelerator and secure Hash function accelerator.
+NUC472 also provides Ethernet 10/100 MAC with MII and RMII interface.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro M451 series 32-bit microcontrollers are embedded with ARM Cortex-M4F core for industrial control and applications
+which need high density memories and rich communication interfaces.
+The NuMicro M451 Network Line embeds Cortex-M4F core with DSP extensions and a Floating Point Unit running up to 72 MHz with 256K/128K bytes
+embedded flash and 32 Kbytes embedded SRAM. It is also equipped with plenty of peripheral devices, such as Timers, Watchdog Timers, RTC, PDMA,
+EBI, UART, Smart Card interface, SPI, I2S, I2C, CAN, PWM Timer, GPIO, 12-bit ADC, 12-bit DAC, touch key sensor, analog comparator, temperature sensor,
+Low voltage reset and Brown-out Detector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro M4521 series 32-bit microcontroller powered by Cortex-M4F with DSP and FPU runs up to 72 MHz.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro M480 series 32-bit microcontroller powered by Cortex-M4F with DSP extension runs up to 192 MHz with 175µA/MHz power consumption.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The NuMicro NUC505 series 32-bit microcontrollers are embedded with Cortex-M4F core for consumer and industrial applications which need high computing power and rich communication interfaces.
+The Cortex-M4F core within NuMicro NUC505 series can run up to 100 MHz and support DSP extensions and Floating Point Unit (FPU) function.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Nuvoton M0NuMicro M031 Series devices
+
+
+
+
+
+ Nuvoton M0NuMicro M051 Series devices
+
+
+
+
+
+
+
+ Nuvoton M0NuMicro M058S Series devices
+
+
+
+ Nuvoton M23NuMicro M251 Series devices
+
+
+
+ Nuvoton M4NuMicro M451 Series devices
+
+
+
+
+
+
+ Nuvoton M4NuMicro M480 Series devices
+
+
+
+
+
+
+ Nuvoton M0NuMicro M0518 Series devices
+
+
+
+ Nuvoton M0NuMicro M0519 Series devices
+
+
+
+ Nuvoton M0NuMicro M0564 Series devices
+
+
+
+ Nuvoton M23NuMicro M2351 Series devices
+
+
+
+
+
+ Nuvoton M23NuMicro M261 Series devices
+
+
+
+
+ Nuvoton M23NuMicro MR63 Series devices
+
+
+
+
+ Nuvoton M4NuMicro M4521 Series devices
+
+
+
+ Nuvoton M0NuMicro Mini51 Series devices
+
+
+
+
+ Nuvoton M0NuMicro Mini55 Series devices
+
+
+
+
+
+ Nuvoton M0NuMicro Mini57 Series devices
+
+
+
+ Nuvoton M0NuMicro Mini58 Series devices
+
+
+
+ Nuvoton M0NuMicro NANO100A Series devices
+
+
+
+
+ Nuvoton M0NuMicro NANO100B Series devices
+
+
+
+ Nuvoton M0NuMicro NANO103 Series devices
+
+
+
+ Nuvoton M0NuMicro NANO112 Series devices
+
+
+
+ Nuvoton M0NuMicro NDA102 Series devices
+
+
+
+ Nuvoton M0NuMicro TF5100 Series devices
+
+
+
+
+ Nuvoton M0NuMicro NM1120 Series devices
+
+
+
+ Nuvoton M0NuMicro NM1100_1200 Series devices
+
+
+
+ Nuvoton M0NuMicro NM1230 Series devices
+
+
+
+ Nuvoton M0NuMicro NM1320 Series devices
+
+
+
+ Nuvoton M0NuMicro NM1330 Series devices
+
+
+
+ Nuvoton M0NuMicro NM1500 Series devices
+
+
+
+ Nuvoton M0NuMicro NM1810 Series devices
+
+
+
+
+ Nuvoton M0NuMicro NM1820 Series devices
+
+
+
+
+
+ Nuvoton M0NuMicro NUC029AE Series devices
+
+
+
+ Nuvoton M0NuMicro NUC029AN Series devices
+
+
+
+ Nuvoton M0NuMicro NUC029DE Series devices
+
+
+
+ Nuvoton M0NuMicro NUC029EE Series devices
+
+
+
+ Nuvoton M0NuMicro NUC029GE Series devices
+
+
+
+ Nuvoton M0NuMicro NUC100 Series devices
+
+
+
+
+ Nuvoton M0NuMicro NUC121 Series devices
+
+
+
+
+ Nuvoton M0NuMicro NUC122 Series devices
+
+
+
+ Nuvoton M0NuMicro NUC123 Series devices
+
+
+
+ Nuvoton M0NuMicro NUC126 Series devices
+
+
+
+ Nuvoton M0NuMicro NUC131 Series devices
+
+
+
+ Nuvoton M0NuMicro NUC1311 Series devices
+
+
+
+ Nuvoton M0NuMicro NUC200 Series devices
+
+
+
+
+ Nuvoton M0NuMicro NUC230_240 Series devices
+
+
+
+ Nuvoton M4NuMicro NUC472 Series devices
+
+
+
+ Nuvoton M4NuMicro NUC505 Series devices
+
+
+
+
+
+ Nuvoton M0NuMicro NUC1261 Series devices
+
+
+
+ Nuvoton M0NuMicro NUC2201 Series devices
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton M031 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton M051 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton M058S Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton M251 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton M451 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton M480 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton M0518 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton M0519 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton M0564 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton M2351 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton M261 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton MR63 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton M4521 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton Mini51 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton Mini55 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton Mini57 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton Mini58 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton Nano100AN Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton Nano100BN Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton Nano103 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton Nano112 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NDA102 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton TF5100 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NM1120 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NM1100_1200 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NM1230 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NM1320 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NM1330 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NM1500 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NM1810 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NM1820 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC029AE Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC029AN Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC029DE Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC029EE Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC029GE Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC100 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC121 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC122 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC123 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC126 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC131 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC1311 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC200 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC230_240 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC472 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC505 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC1261 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Startup for Nuvoton NUC2201 Series
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8A/STM8AF52xx_F62xx_F63xx.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8A/STM8AF52xx_F62xx_F63xx.lua
index e039c4c..dc7ff82 100644
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8A/STM8AF52xx_F62xx_F63xx.lua
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8A/STM8AF52xx_F62xx_F63xx.lua
@@ -67,7 +67,7 @@ function config_cpu(void)
EEPROM_ADDRESS = 0x004000 --FLASHʼַ(STM8SSTM8Lͬ
- for i = 1, #TaskList, 3 do
+ for i = 1, #DeviceList, 3 do
if (CHIP_NAME == DeviceList[i]) then
FLASH_SIZE = DeviceList[i + 1] --FLASH
EEPROM_SIZE = DeviceList[i + 2] --EEPROM
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8A/STM8AF6226_F6223_F6213.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8A/STM8AF6226_F6223_F6213.lua
index dab36ad..6ed5442 100644
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8A/STM8AF6226_F6223_F6213.lua
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8A/STM8AF6226_F6223_F6213.lua
@@ -24,7 +24,7 @@ function config_cpu(void)
EEPROM_ADDRESS = 0x004000 --FLASHʼַ(STM8SSTM8Lͬ
- for i = 1, #TaskList, 3 do
+ for i = 1, #DeviceList, 3 do
if (CHIP_NAME == DeviceList[i]) then
FLASH_SIZE = DeviceList[i + 1] --FLASH
EEPROM_SIZE = DeviceList[i + 2] --EEPROM
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8L/STM8L101.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8L/STM8L101.lua
index 184952f..59234d6 100644
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8L/STM8L101.lua
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8L/STM8L101.lua
@@ -27,7 +27,7 @@ function config_cpu(void)
EEPROM_ADDRESS = 0x009FC0 --EEPROMʼַ(STM8SSTM8Lͬ
- for i = 1, #TaskList, 3 do
+ for i = 1, #DeviceList, 3 do
if (CHIP_NAME == DeviceList[i]) then
FLASH_SIZE = DeviceList[i + 1] --FLASH
EEPROM_SIZE = DeviceList[i + 2] --EEPROM
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8L/STM8L151_152_05x_162.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8L/STM8L151_152_05x_162.lua
index a61f5b2..7666a22 100644
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8L/STM8L151_152_05x_162.lua
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8L/STM8L151_152_05x_162.lua
@@ -33,6 +33,8 @@ function config_cpu(void)
"STM8L152C4", 16 * 1024, 1 * 1024,
"STM8L152C6", 32 * 1024, 1 * 1024,
"STM8L152C8", 64 * 1024, 2 * 1024,
+ "STM8L152K4", 16 * 1024, 1 * 1024,
+ "STM8L152K6", 32 * 1024, 1 * 1024,
"STM8L152K8", 64 * 1024, 2 * 1024,
"STM8L152R8", 64 * 1024, 2 * 1024,
"STM8L152M8", 64 * 1024, 2 * 1024,
@@ -55,7 +57,7 @@ function config_cpu(void)
EEPROM_ADDRESS = 0x001000 --EEPROMʼַ(STM8SSTM8Lͬ
- for i = 1, #TaskList, 3 do
+ for i = 1, #DeviceList, 3 do
if (CHIP_NAME == DeviceList[i]) then
FLASH_SIZE = DeviceList[i + 1] --FLASH
EEPROM_SIZE = DeviceList[i + 2] --EEPROM
@@ -75,8 +77,20 @@ function config_cpu(void)
OB_ADDRESS = "4800 4802 4807 4808 4809 480A 480B 480C"
- OB_SECURE_OFF = "AA 00 00 00 00 00 00 00" --SECURE_ENABLE = 0ʱϺдֵ (ֽڣ
- OB_SECURE_ON = "00 00 00 00 00 00 00 00" --SECURE_ENABLE = 1ʱϺдֵ
+ OB_SECURE_OFF = "AA 00 00 00 00 00 00 00 00" --SECURE_ENABLE = 0ʱϺдֵ (ֽڣ
+ OB_SECURE_ON = "00 00 00 00 00 00 00 00 00" --SECURE_ENABLE = 1ʱϺдֵ
+
+ MCU_REMOVE_PROTECT = 1 --1ʾʹ MCU_RemoveProtect()
+end
+
+-- STM8L05x/15x, medium density STM8L05x/15x and STM8AL31xx/STM8AL3Lxx and high density STM8L05x/15x/16x microcontrollers,
+-- Ҫ2дܽ
+function MCU_RemoveProtect(void)
+ pg_prog_buf_ob("4800", "AA")
+ delayms(5)
+ pg_prog_buf_ob("4800", "AA")
+ delayms(5)
+ pg_reset()
end
--------------------------------------------------------------
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8S/STM8S103_903_003_001.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8S/STM8S103_903_003_001.lua
index 5578151..d5640a5 100644
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8S/STM8S103_903_003_001.lua
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8S/STM8S103_903_003_001.lua
@@ -27,7 +27,7 @@ function config_cpu(void)
EEPROM_ADDRESS = 0x004000 --FLASHʼַ(STM8SSTM8Lͬ
- for i = 1, #TaskList, 3 do
+ for i = 1, #DeviceList, 3 do
if (CHIP_NAME == DeviceList[i]) then
FLASH_SIZE = DeviceList[i + 1] --FLASH
EEPROM_SIZE = DeviceList[i + 2] --EEPROM
@@ -38,6 +38,7 @@ function config_cpu(void)
else
FLASH_BLOCK_SIZE = 128
end
+ break
end
end
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8S/STM8S105_005_007.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8S/STM8S105_005_007.lua
index 61189b7..f346742 100644
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8S/STM8S105_005_007.lua
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8S/STM8S105_005_007.lua
@@ -27,7 +27,7 @@ function config_cpu(void)
EEPROM_ADDRESS = 0x004000 --FLASHʼַ(STM8SSTM8Lͬ
- for i = 1, #TaskList, 3 do
+ for i = 1, #DeviceList, 3 do
if (CHIP_NAME == DeviceList[i]) then
FLASH_SIZE = DeviceList[i + 1] --FLASH
EEPROM_SIZE = DeviceList[i + 2] --EEPROM
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8S/STM8S207_208.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8S/STM8S207_208.lua
index 216248b..b4bae48 100644
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8S/STM8S207_208.lua
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/Device/ST/STM8S/STM8S207_208.lua
@@ -40,7 +40,7 @@ function config_cpu(void)
EEPROM_ADDRESS = 0x004000 --FLASHʼַ(STM8SSTM8Lͬ
- for i = 1, #TaskList, 3 do
+ for i = 1, #DeviceList, 3 do
if (CHIP_NAME == DeviceList[i]) then
FLASH_SIZE = DeviceList[i + 1] --FLASH
EEPROM_SIZE = DeviceList[i + 2] --EEPROM
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/LuaLib/fix_data.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/LuaLib/fix_data.lua
index 833f507..e27f745 100644
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/LuaLib/fix_data.lua
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/LuaLib/fix_data.lua
@@ -128,6 +128,7 @@ function sn_new(void)
local bin = {}
local out = {}
local sn1
+ local s
sn1 = pg_read_sn() --ϴSN
str = string.format("last sn = %d", sn1) print(str)
@@ -141,15 +142,15 @@ function sn_new(void)
--ƴΪƴ
if (SN_LITTLE_ENDIN == 1) then
- s = string.char(sn1)
- s = s..string.char(sn1 >> 8)
- s = s..string.char(sn1 >> 16)
- s = s..string.char(sn1 >> 24)
+ s = string.char(sn1 & 0xFF)
+ s = s..string.char((sn1 >> 8) & 0xFF)
+ s = s..string.char((sn1 >> 16) & 0xFF)
+ s = s..string.char((sn1 >> 24) & 0xFF)
else
- s = string.char(sn1 >> 24)
- s = s..string.char(sn1 >> 16)
- s = s..string.char(sn1 >> 8)
- s = s..string.char(sn1)
+ s = string.char((sn1 >> 24) & 0xFF)
+ s = s..string.char((sn1 >> 16) & 0xFF)
+ s = s..string.char((sn1 >> 8) & 0xFF)
+ s = s..string.char(sn1 & 0xFF)
end
return s;
end
@@ -183,10 +184,10 @@ function uid_encrypt(uid)
out[4] = out[2] ~ 0x78
--ƴΪƴ
- s = string.char(out[1])
- s = s..string.char(out[2])
- s = s..string.char(out[3])
- s = s..string.char(out[4])
+ s = string.char(out[1] & 0xFF)
+ s = s..string.char(out[2] & 0xFF)
+ s = s..string.char(out[3] & 0xFF)
+ s = s..string.char(out[4] & 0xFF)
return s
end
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/LuaLib/prog_lib.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/LuaLib/prog_lib.lua
index 41a7465..45bfda1 100644
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/LuaLib/prog_lib.lua
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/LuaLib/prog_lib.lua
@@ -1,6 +1,6 @@
-------------------------------------------------------
-- ļ : prog_lib.lua
--- : V1.0 2020-04-23
+-- : V1.1 2020-06-03
-- ˵ :ѻ̹ú
-------------------------------------------------------
@@ -43,7 +43,18 @@ function prog_or_erase(mode)
config_chip1() --¼
- print("SWCLKʱӳ: ", SWD_CLOCK_DELAY)
+ if (CHIP_TYPE == "SWD") then
+ print("SWCLKʱӳ: ", SWD_CLOCK_DELAY)
+ else if (CHIP_TYPE == "SWIM") then
+ print("CHIP_NAME = "..CHIP_NAME)
+ print(" flash size = ", FLASH_SIZE)
+ print(" eeprom size = ", EEPROM_SIZE)
+ if (FLASH_SIZE == nil or EEPROM_SIZE == nil) then
+ err = "chip name is invalid"
+ goto quit
+ end
+ end
+ end
-- set_tvcc(0) --ϵ
-- delayms(20)
@@ -133,7 +144,7 @@ function prog_or_erase(mode)
else
err = swim_start_prog() --STM8 (SWD)
end
- else
+ else --
if (mode == 1) then
err = erase_chip(FLASH_ADDRESS) --CPU Flash
else
@@ -294,14 +305,22 @@ function swd_start_prog(void)
for i = 1, #OB_WRP_ADDRESS, 1 do
local wrp
- re,ob_data = pg_read_mem(OB_WRP_ADDRESS[i], 1)
+ if (MCU_READ_OPTION == 1) then
+ re,ob_data = MCU_ReadOptionsByte(OB_WRP_ADDRESS[i], 1)
+ else
+ re,ob_data = pg_read_mem(OB_WRP_ADDRESS[i], 1)
+ end
if (re == 0) then
print(" Ĵʧ")
pg_print_text(" ѱö")
remove_protect = 1
break
else
- wrp = tonumber(string.byte(ob_data,1,1))
+ if (MCU_READ_OPTION == 1) then
+ wrp = ob_data
+ else
+ wrp = tonumber(string.byte(ob_data,1,1))
+ end
str = string.format(" 0x%08X 0x%02X & 0x%02X == 0x%02X", OB_WRP_ADDRESS[i], wrp, OB_WRP_MASK[i], OB_WRP_VALUE[i])
if ((wrp & OB_WRP_MASK[i]) ~= OB_WRP_VALUE[i]) then
str = str.."(ѱ)"
@@ -405,18 +424,13 @@ function swim_start_prog(void)
pg_init()
- --öٽԶȫƬ
- pg_print_text("ȫƬ")
- re = pg_prog_buf_ob(OB_ADDRESS, OB_SECURE_ON)
- if (re == 0) then
- err = "ʧ" goto quit
- goto quit
- end
- pg_init() --λЧ
- re = pg_prog_buf_ob(OB_ADDRESS, OB_SECURE_OFF)
- if (re == 0) then
- err = "ʧ" goto quit
- goto quit
+ if (ERASE_CHIP_ENABLE == 1) then
+ --öٽԶȫƬ
+ pg_print_text("ȫƬ")
+ --ȼӱٽﵽоƬĿ
+ set_read_protect(1)
+ pg_init()
+ set_read_protect(0)
end
--̬SN UID USR
@@ -646,20 +660,29 @@ function set_read_protect(on)
time1 = get_runtime()
- --TVCCѹ
- set_tvcc(TVCC_VOLT)
- delayms(20)
-
- --IC,ӡںID
- local core_id = pg_detect_ic()
- if (core_id == 0) then
- err = "δIC" print(err) return err
- else
- str = string.format("core_id = 0x%08X", core_id)
- print(str)
- end
+-- --TVCCѹ
+-- set_tvcc(TVCC_VOLT)
+-- delayms(20)
+--
+-- --IC,ӡںID
+-- local core_id = pg_detect_ic()
+-- if (core_id == 0) then
+-- err = "δIC" print(err) return err
+-- else
+-- str = string.format("core_id = 0x%08X", core_id)
+-- print(str)
+-- end
if (CHIP_TYPE == "SWD") then
+
+ --רõĽ
+ if (MCU_REMOVE_PROTECT == 1) then
+ if (on == 0) then
+ print("MCU_RemoveProtect()")
+ MCU_RemoveProtect()
+ end
+ end
+
if (AlgoFile_OPT == "") then
err = "ûOPT㷨ļ" print(err) return err
end
@@ -671,7 +694,13 @@ function set_read_protect(on)
end
else
if (CHIP_TYPE == "SWIM") then
-
+ --STM8רõĽ
+ if (MCU_REMOVE_PROTECT == 1) then
+ if (on == 0) then
+ print("MCU_RemoveProtect()")
+ MCU_RemoveProtect()
+ end
+ end
else
print("ָ֧ù")
return "err"
@@ -764,10 +793,10 @@ function erase_chip(FlashAddr)
end
else
if (CHIP_TYPE == "SWIM") then
- if (FlashAddr == 0x08000) then
+ if (FlashAddr == FLASH_ADDRESS) then
str = string.format("ʼflash. ַ : 0x%X : %dKB ", FlashAddr, FLASH_SIZE / 1024)
else
- str = string.format("ʼeeprom. ַ : 0x%X : %dKB ", FlashAddr, EEPROM_SIZE / 1024)
+ str = string.format("ʼeeprom. ַ : 0x%X : %dB ", FlashAddr, EEPROM_SIZE)
end
print(str)
else
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/Nuvoton/demo_M0518LD2AE.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/Nuvoton/demo_M0518LD2AE.lua
new file mode 100644
index 0000000..b45bc40
--- /dev/null
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/Nuvoton/demo_M0518LD2AE.lua
@@ -0,0 +1,405 @@
+--¿ݷʽʾPC-------------
+--F01=Զ,start_prog()
+--F03=MCU flash,erase_chip_mcu()
+--F04=QSPI flash,erase_chip_qspi()
+--F05=EEPROM, erase_chip_eeprom()
+--F06=ӡںid,print_core_id()
+--F07=ӡUID,MCU_ReadUID()
+--F08=ӡFlash,print_flash(FLASH_ADDRESS,1024,32,FLASH_ADDRESS)
+--F09=EEPROM,print_flash(EEPROM_ADDRESS, 256)
+--F10=RAM,print_flash(RAM_ADDRESS, 256)
+--F12=Ӳλ,pg_reset()
+--F13=ö,set_read_protect(1)
+--F14=,set_read_protect(0)
+--F15=ӡCONFIG, print_option_bytes()
+--F16=1ϵ,set_tvcc(0) delayms(1000) set_tvcc(TVCC_VOLT)
+
+--ѡоƬϵ----------------------------------
+--dofile("0:/H7-TOOL/Programmer/Device/ST/STM32F0xx/STM32F0xxx4.lua")
+function config_cpu(void)
+ CHIP_TYPE = "SWD" --ָӿ: "SWD", "SWIM", "SPI", "I2C", "UART"
+
+--
+--
+--
+
+ AlgoFile_FLASH = "0:/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_AP_68.FLM"
+ AlgoFile_OTP = ""
+ AlgoFile_OPT = "0:/H7-TOOL/Programmer/Device/Nuvoton/FLM/M0518_CFG.FLM"
+ AlgoFile_QSPI = ""
+
+ FLASH_ADDRESS = 0x00000000 --CPUڲFLASHʼַ
+
+ RAM_ADDRESS = 0x20000000 --CPUڲRAMʼַ
+
+ --Flash㷨ļڴַʹС
+ AlgoRamAddr = RAM_ADDRESS
+ AlgoRamSize = 4 * 1024
+
+ MCU_ID = 0x0BB11477
+
+ UID_ADDR = 0x1FFFF7AC --UIDַͬCPUͬ
+ UID_BYTES = 12
+
+ --ȱʡУģʽ
+ VERIFY_MODE = 0 -- 0:У, 1:CRC32У, :չӲCRC(ҪƬ֧֣
+
+ ERASE_CHIP_TIME = 5000 --ȫƬʱmsڽָʾ)
+
+ OB_ADDRESS = "00300000 00300001 00300002 00300003 00300004 00300005 00300006 00300007"
+
+ OB_SECURE_OFF = "FF FF FF FF FF FF FF FF" --SECURE_ENABLE = 0ʱϺдֵ()
+ OB_SECURE_ON = "FD FF FF FF FF FF FF FF" --SECURE_ENABLE = 1ʱϺдֵ(оƬ)
+
+ --ж϶д(WRP = Write protection)
+ OB_WRP_ADDRESS = {0x00300000} --ڴַ
+ OB_WRP_MASK = {0x20} --
+ OB_WRP_VALUE = {0x20} --Ƚϣȱʾûб
+
+ --MCUרеĽָ
+ MCU_REMOVE_PROTECT = 1 --1ʾҪרŵĽĺ
+ MCU_READ_OPTION = 1 --1ʾҪרŵĶѡֵĺ
+
+ MCU_Init()
+end
+
+--ƼĴ
+FMC_ISPCON = 0x5000C000
+FMC_ISPADR = 0x5000C004
+FMC_ISPDAT = 0x5000C008
+FMC_ISPCMD = 0x5000C00C
+FMC_ISPTRG = 0x5000C010
+--FMC_DFBADR = 0x5000C014
+--FMC_FATCON = 0x5000C018
+--FMC_ISPSTA = 0x5000C040
+
+ISPCMD_READ = 0x00
+ISPCMD_PROGRAM = 0x21
+ISPCMD_PAGE_ERASE = 0x22
+ISPCMD_VECMAP = 0x2e
+ISPCMD_READ_UID = 0x04
+ISPCMD_READ_CID = 0x0B
+ISPCMD_READ_DID = 0x0C
+
+FMC_ISPCON_ISPFF_Msk = 0x40
+
+g_apromSize = 32 * 1024
+g_dataFlashAddr = 0
+g_dataFlashSize = 0
+
+function MCU_Init(void)
+ --SYS_UnlockReg()
+ local i
+
+ for i = 1,1000, 1 do
+ if (pg_read32(0x50000100) == 1) then
+ break
+ end
+ pg_write32(0x50000100, 0x59)
+ pg_write32(0x50000100, 0x16)
+ pg_write32(0x50000100, 0x88)
+ end
+
+
+ --
+ --pg_write32(0x50000204, pg_read32(0x50000204) | 0x04)
+
+ --FMC_Open()
+ pg_write32(FMC_ISPCON, pg_read32(FMC_ISPCON) | 0x39)
+end
+
+
+function MCU_ReadUID(void)
+ local id
+ local i,j
+ local s = ""
+ local str
+
+ for i = 1, 3, 1 do
+ pg_write32(FMC_ISPCMD, ISPCMD_READ_UID)
+ pg_write32(FMC_ISPADR, (i - 1) * 4)
+ pg_write32(FMC_ISPTRG, 0x01)
+
+ for j = 1, 1000, 1 do
+ if ((pg_read32(FMC_ISPTRG) & 0x01) == 0) then
+ break
+ end
+ end
+
+ id = pg_read32(FMC_ISPDAT)
+
+ s = s..string.char(id & 0xFF)
+ s = s..string.char((id >> 8) & 0xFF)
+ s = s..string.char((id >> 16) & 0xFF)
+ s = s..string.char((id >> 24) & 0xFF)
+ end
+
+ str = "uid = "..bin2hex(s) print(str)
+
+ return s
+end
+
+function FMC_Read_User(address)
+ local reg
+
+ pg_write32(FMC_ISPCMD, ISPCMD_READ) --ISPCMD = ISP_Read
+ pg_write32(FMC_ISPADR, address) --ISPADR = address
+ pg_write32(FMC_ISPDAT, 0) --ISPDAT = 0
+
+ pg_write32(FMC_ISPTRG, 0x01) --ISPTRG = ISPGO
+
+ reg = pg_read32(FMC_ISPCON) --read FISPCON
+ if ((reg & 0x40) > 0) then
+ pg_write32(FMC_ISPCON, reg)
+ return -1
+ end
+ return pg_read32(FMC_ISPDAT) --read ISPDAT
+end
+
+function FMC_Write_User(u32Addr, u32Data)
+ local Reg;
+
+ pg_write32(FMC_ISPCMD, ISPCMD_PROGRAM) --ISPCMD = FMC_ISPCMD_PROGRAM
+ pg_write32(FMC_ISPADR, u32Addr) --ISPADR = u32Addr
+ pg_write32(FMC_ISPDAT, u32Data) --ISPDAT = u32Data
+
+ pg_write32(FMC_ISPTRG, 0x01) --ISPTRG = ISPGO
+
+ --Check ISPFF flag to know whether erase OK or fail
+ reg = pg_read32(FMC_ISPCON) --read FISPCON
+ if ((reg & 0x40) > 0) then
+ pg_write32(FMC_ISPCON, reg)
+ return -1
+ else
+ return 0
+ end
+end
+
+function FMC_Erase_User(address)
+ local reg
+
+ pg_write32(FMC_ISPCMD, ISPCMD_PAGE_ERASE) --ISPCMD = FMC_ISPCMD_PAGE_ERASE
+ pg_write32(FMC_ISPADR, address) --ISPADR = address
+ pg_write32(FMC_ISPTRG, 0x01) --ISPTRG = ISPGO
+
+ for j = 1, 1000, 1 do
+ if ((pg_read32(FMC_ISPTRG) & 0x01) == 0) then
+ break
+ end
+ delayms(1)
+ end
+
+ --Check ISPFF flag to know whether erase OK or fail
+ reg = pg_read32(FMC_ISPCON) --read FISPCON
+ if ((reg & 0x40) > 0) then
+ pg_write32(FMC_ISPCON, reg)
+ return -1
+ else
+ return 0
+ end
+end
+
+function EraseAP(addr_start, addr_end)
+ while (addr_start < addr_end) do
+ if (FMC_Erase_User(addr_start) == -1) then
+ print("EraseAP failed", addr_start, addr_end)
+ return -1
+ end
+ addr_start = addr_start + 512
+ end
+ print("EraseAP Ok", addr_start, addr_end)
+ return 0
+end
+
+function UpdateConfig(cfg0, cfg1)
+ --FMC_ENABLE_CFG_UPDATE()
+ pg_write32(FMC_ISPCON, pg_read32(FMC_ISPCON) | 0x10)
+
+ if (FMC_Erase_User(0x00300000) == -1) then
+ print("FMC_Erase_User failed", 0x00300000)
+ end
+ FMC_Write_User(0x00300000, cfg0);
+ FMC_Write_User(0x00300004, cfg1);
+end
+
+--оƬרеĽ
+function MCU_ReadOptionsByte(addr, bytes)
+ local cfg1, cfg2
+ local re
+ local data = 0
+ local idx
+
+ cfg1 = FMC_Read_User(0x00300000)
+ cfg2 = FMC_Read_User(0x00300004)
+
+ if (cfg1 == -1 or cfg2 == -1) then
+ re = 0
+ return 0,0
+ end
+
+
+ if (addr >= 0x00300000 and addr <= 0x00300003) then
+ idx = addr - 0x00300000
+ data = (cfg1 >> (idx * 8)) & 0xFF
+ else
+ if (addr >= 0x00300004 and addr <= 0x00300007) then
+ idx = addr - 0x00300004
+ data = (cfg2 >> (idx * 8)) & 0xFF
+ else
+ return 0,0
+ end
+ end
+ return 1, data
+end
+
+--оƬרеĽ
+function MCU_RemoveProtect(void)
+ local i
+
+ pg_write32(FMC_ISPCMD, 0x26)
+ pg_write32(FMC_ISPADR, 0)
+ pg_write32(FMC_ISPDAT, 0)
+ pg_write32(FMC_ISPTRG, 0x01)
+
+ for i = 1, 5000, 1 do
+ if ((pg_read32(FMC_ISPTRG) & 0x01) == 0) then
+ break
+ end
+ delayms(1)
+ end
+end
+
+--Supports 32K/64K (APROM)
+function GetApromSize(void)
+ local size = 0xA000, data;
+
+ data = FMC_Read_User(size)
+
+ if (data < 0) then
+ return 32 * 1024;
+ else
+ return 64 * 1024;
+ end
+end
+
+
+
+function GetDataFlashInfo(void)
+ local uData;
+
+ CONFIG0_DFEN = 0x01
+ CONFIG0_DFVSEN = 0x04
+
+ g_apromSize = GetApromSize()
+
+ g_dataFlashSizee = 0;
+
+-- Note: DFVSEN = 1, DATA Flash Size is 4K bytes
+-- DFVSEN = 0, DATA Flash Size is based on CONFIG1
+ uData = FMC_Read_User(0x00300000)
+
+ if ((uData & CONFIG0_DFVSEN) > 0) then
+ g_dataFlashAddr = 0x1F000
+ g_dataFlashSize = 4 * 1024
+ else
+ if ((uData & CONFIG0_DFEN) > 0) then
+ g_apromSize = g_apromSize + 4096
+ g_dataFlashAddr = g_apromSize
+ g_dataFlashSize = 0
+ else
+ g_apromSize = g_apromSize + 4096
+ uData = FMC_Read_User(0x00300004)
+ uData = uData & 0x000FFE00
+
+ if (uData > g_apromSize + 4096) then
+ uData = g_apromSize
+ end
+
+ g_dataFlashAddr = uData
+ g_dataFlashSize = g_apromSize - uData
+ g_apromSize = g_apromSize - g_dataFlashSize
+ end
+ end
+end
+
+--UIDܺͲƷŴļ
+dofile("0:/H7-TOOL/Programmer/LuaLib/fix_data.lua")
+
+--luaӳ
+dofile("0:/H7-TOOL/Programmer/LuaLib/prog_lib.lua")
+
+--עͽʾH7-TOOLҺ
+Note01 = "Գ"
+
+beep()
+
+--оƬӿںͲ
+function config_chip1(void)
+
+ config_cpu()
+
+ --ϵЧ´
+ REMOVE_RDP_POWEROFF = 0
+ POWEROFF_TIME1 = 0 --дOBӳʱ 2000ms
+ POWEROFF_TIME2 = 100 --ϵʱ 100ms
+ POWEROFF_TIME3 = 20 --ϵȴʱ 100ms
+
+ --б
+ --㷨ļļ֧־···ʱluaļͬĿ¼֧../ϼĿ¼
+ TaskList = {
+ AlgoFile_FLASH, --㷨ļ
+ "0:/H7-TOOL/Programmer/User/TestBin/64k_55.bin", --ļ
+ FLASH_ADDRESS, --Ŀַ
+ }
+
+ --CPUѹTVCC
+ TVCC_VOLT = 3.3
+
+ --SWDʱӳ٣0ӳ٣ֵԽٶԽ
+ if (MULTI_MODE == 0) then
+ SWD_CLOCK_DELAY = 0 --·
+ else
+ SWD_CLOCK_DELAY = 0 --·̣ʵʰӵڣCPUƵ³й
+ end
+
+ --1ʾƬ0ʾ. ЩCPUƬٶȿܶ࣬Щܶ
+ ERASE_CHIP_ENABLE = 0
+
+ RESET_TYPE = 0 -- 0ʾλ 1ʾӲλ
+
+ --Ƿ˶CPUںID
+ CHECK_MCU_ID = 0
+
+ VERIFY_MODE = 0 --Уģʽ: 0:Զ(FLMṩУ麯) 1: 2:CRC32 3:STM32ӲCRC32
+
+ --̽λ 0ʾλ 1ʾӲλ
+ RESET_AFTER_COMPLETE = 1
+
+ AUTO_REMOVE_PROTECT = 1 --1ʾԶд
+
+ --OPTION BYTES
+ OB_ENABLE = 0 --1ʾϺдOPTION BYTES
+ SECURE_ENABLE = 0 --ѡܻDz
+
+ pg_reload_var() --ڸcȫֱ
+end
+
+--̬SN UID USR
+function config_fix_data(void)
+ SN_ENABLE = 0 --1ʾ 0ʾ
+ SN_SAVE_ADDR = 0 --Ʒűַ
+
+ UID_ENABLE = 0 --1ʾüܺ1 0ʾ
+ UID_SAVE_ADDR = 0 --ܽFLASH洢ַ
+
+ USR_ENABLE = 0 --1ʾ 0ʾ
+ USR_SAVE_ADDR = 0 --Զݴ洢ַ
+end
+
+MULTI_MODE = pg_read_c_var("MultiProgMode")
+
+config_chip1() --ִһθȫֱֵ
+
+config_fix_data() --̬SN UID USR
+
+--------------------------------------------------------------
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM32/demo_H7-TOOL_Boot_App.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM32/demo_H7-TOOL_Boot_App.lua
new file mode 100644
index 0000000..284437b
--- /dev/null
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM32/demo_H7-TOOL_Boot_App.lua
@@ -0,0 +1,103 @@
+--¿ݷʽʾPC-------------
+--F01=Զ,start_prog()
+--F03=MCU flash,erase_chip_mcu()
+--F04=QSPI flash,erase_chip_qspi()
+--F05=EEPROM, erase_chip_eeprom()
+--F06=ӡںid,print_core_id()
+--F07=ӡUID,print_flash(UID_ADDR,12)
+--F08=ӡFlash,print_flash(FLASH_ADDRESS,1024,32,FLASH_ADDRESS)
+--F09=EEPROM,print_flash(EEPROM_ADDRESS, 256)
+--F10=RAM,print_flash(RAM_ADDRESS, 256)
+--F12=Ӳλ,pg_reset()
+--F13=ö,set_read_protect(1)
+--F14=,set_read_protect(0)
+--F15=ӡOption Bytes,print_option_bytes()
+
+--luaļ-----------------------------------
+dofile("0:/H7-TOOL/Programmer/Device/ST/STM32H7x/STM32H7x_2M.lua")
+--dofile("0:/H7-TOOL/Programmer/Device/ST/STM32H7x/STM32H7x_128K.lua")
+
+--UIDܺͲƷŴļ
+dofile("0:/H7-TOOL/Programmer/LuaLib/fix_data.lua")
+
+--luaӳ
+dofile("0:/H7-TOOL/Programmer/LuaLib/prog_lib.lua")
+
+--עͽʾH7-TOOLҺ
+Note01 = "Գ"
+
+beep()
+
+--оƬӿںͲ
+function config_chip1(void)
+
+ config_cpu()
+
+ --б
+ --㷨ļļ֧־···ʱluaļͬĿ¼֧../ϼĿ¼
+ TaskList = {
+ AlgoFile_FLASH, --㷨ļ
+ "0:/H7-TOOL/Firmware/H7-BOOT.bin", --ļ
+ 0x08000000, --Ŀַ
+
+ AlgoFile_FLASH, --㷨ļ
+ "0:/H7-TOOL/Firmware/h7_tool_app.bin", --ļ
+ 0x08020000, --Ŀַ
+
+-- AlgoFile_QSPI, --㷨ļ
+-- "0:/H7-TOOL/Fonts/GB2312ZK.bin", --ļ
+-- 0x91E00000, --Ŀַ
+ }
+
+ --CPUѹTVCC
+ TVCC_VOLT = 3.3
+
+ --SWDʱӳ٣0ӳ٣ֵԽٶԽ
+ --SWDʱӳ٣0ӳ٣ֵԽٶԽ
+ if (MULTI_MODE == 0) then
+ SWD_CLOCK_DELAY = 0 --·
+ else
+ SWD_CLOCK_DELAY = 0 --·̣ʵʰӵڣCPUƵ³й
+ end
+
+ --1ʾƬ0ʾ. ЩCPUƬٶȿܶ࣬Щܶ
+ ERASE_CHIP_ENABLE = 0
+
+ RESET_TYPE = 0 -- 0ʾλ 1ʾӲλ
+
+ --Ƿ˶CPUںID
+ CHECK_MCU_ID = 0
+
+ VERIFY_MODE = 0 --Уģʽ: 0:Զ(FLMṩУ麯) 1: 2:CRC32 3:STM32ӲCRC32
+
+ --̽λ 0ʾλ 1ʾӲλ
+ RESET_AFTER_COMPLETE = 0
+
+ AUTO_REMOVE_PROTECT = 1 --1ʾԶд
+
+ --OPTION BYTES
+ OB_ENABLE = 0 --1ʾϺдOPTION BYTES
+ SECURE_ENABLE = 0 --ѡܻDz
+
+ pg_reload_var() --ڸcȫֱ
+end
+
+--̬SN UID USR
+function config_fix_data(void)
+ SN_ENABLE = 0 --1ʾ 0ʾ
+ SN_SAVE_ADDR = 0 --Ʒűַ
+
+ UID_ENABLE = 0 --1ʾüܺ1 0ʾ
+ UID_SAVE_ADDR = 0 --ܽFLASH洢ַ
+
+ USR_ENABLE = 0 --1ʾ 0ʾ
+ USR_SAVE_ADDR = 0 --Զݴ洢ַ
+end
+
+config_chip1() --ִһθȫֱֵ
+
+config_fix_data() --̬SN UID USR
+
+MULTI_MODE = pg_read_c_var("MultiProgMode")
+
+--------------------------------------------------------------
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM32/demo_STM32F030x8.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM32/demo_STM32F030x8.lua
index eb24de0..ce0ae72 100644
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM32/demo_STM32F030x8.lua
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM32/demo_STM32F030x8.lua
@@ -57,7 +57,7 @@ function config_chip1(void)
if (MULTI_MODE == 0) then
SWD_CLOCK_DELAY = 0 --·
else
- SWD_CLOCK_DELAY = 30 --·̣ʵʰӵڣCPUƵ³й
+ SWD_CLOCK_DELAY = 5 --·̣ʵʰӵڣCPUƵ³й
end
--1ʾƬ0ʾ. ЩCPUƬٶȿܶ࣬Щܶ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM32/demo_STM32F429xI.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM32/demo_STM32F429xI.lua
index d834791..ed70c55 100644
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM32/demo_STM32F429xI.lua
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM32/demo_STM32F429xI.lua
@@ -69,7 +69,7 @@ function config_chip1(void)
if (MULTI_MODE == 0) then
SWD_CLOCK_DELAY = 0 --·
else
- SWD_CLOCK_DELAY = 0 --·̣ʵʰӵڣCPUƵ³й
+ SWD_CLOCK_DELAY = 1 --·̣ʵʰӵڣCPUƵ³й
end
--1ʾƬ0ʾ. ЩCPUƬٶȿܶ࣬Щܶ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8L151x6.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8AF5288.lua
similarity index 89%
rename from Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8L151x6.lua
rename to Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8AF5288.lua
index 45891d9..7688b45 100644
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8L151x6.lua
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8AF5288.lua
@@ -18,19 +18,18 @@ Note01 = "
beep()
-CHIP_NAME = "STM8L151C6"
-
+--CHIP_NAME = "STM8S105C6"
--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8S/STM8S103_903_003_001.lua")
--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8S/STM8S105_005_007.lua")
--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8S/STM8S207_208.lua")
--CHIP_NAME = "STM8L151C8"
--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8L/STM8L101.lua")
-dofile("0:/H7-TOOL/Programmer/Device/ST/STM8L/STM8L151_152_05x_162.lua")
+--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8L/STM8L151_152_05x_162.lua")
---CHIP_NAME = "STM8AF52AA"
+CHIP_NAME = "STM8AF5288"
--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8A/STM8AF6226_F6223_F6213.lua")
---dofile("0:/H7-TOOL/Programmer/Device/ST/STM8A/STM8AF52xx_F62xx_F63xx.lua")
+dofile("0:/H7-TOOL/Programmer/Device/ST/STM8A/STM8AF52xx_F62xx_F63xx.lua")
--UIDܺͲƷŴļ
dofile("0:/H7-TOOL/Programmer/LuaLib/fix_data.lua")
@@ -63,7 +62,7 @@ function config_chip1(void)
TVCC_VOLT = 3.3
--1ʾƬ0ʾ. ЩCPUƬٶȿܶ࣬Щܶ
- ERASE_CHIP_ENABLE = 0
+ ERASE_CHIP_ENABLE = 1
RESET_TYPE = 0 -- 0ʾλ 1ʾӲλ
@@ -76,8 +75,8 @@ function config_chip1(void)
AUTO_REMOVE_PROTECT = 1 --1ʾԶд
--OPTION BYTES
- OB_ENABLE = 0 --1ʾϺдOPTION BYTES
- SECURE_ENABLE = 0 --ѡܻDz
+ OB_ENABLE = 1 --1ʾϺдOPTION BYTES
+ SECURE_ENABLE = 1 --ѡܻDz
pg_reload_var() --ڸcȫֱ
end
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8L051x3.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8L051x3.lua
new file mode 100644
index 0000000..f953900
--- /dev/null
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8L051x3.lua
@@ -0,0 +1,103 @@
+--¿ݷʽʾPC(STM8)
+--F01=Զ,start_prog()
+--F03=flash,erase_chip(FLASH_ADDRESS)
+--F04=eeprom,erase_chip(EEPROM_ADDRESS)
+--F05=ӡflash,print_flash(FLASH_ADDRESS,512,16,FLASH_ADDRESS)
+--F06=ӡeeprom,print_flash(EEPROM_ADDRESS,256,16,EEPROM_ADDRESS)
+--F07=ӡUID,print_flash(UID_ADDR,12)
+--F08=ӡںid,print_core_id()
+--F09=RAM,pg_write_mem(0, "1234")
+--F10=RAM,print_flash(0, 16)
+--F12=Ӳλ,pg_reset()
+--F13=ö, set_read_protect(1)
+--F14=, set_read_protect(0)
+--F15=ӡOption Bytes,print_option_bytes()
+
+--עͽʾH7-TOOLҺ
+Note01 = "Գ"
+
+beep()
+
+CHIP_NAME = "STM8L051F3"
+
+--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8S/STM8S103_903_003_001.lua")
+--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8S/STM8S105_005_007.lua")
+--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8S/STM8S207_208.lua")
+
+--CHIP_NAME = "STM8L151C8"
+--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8L/STM8L101.lua")
+dofile("0:/H7-TOOL/Programmer/Device/ST/STM8L/STM8L151_152_05x_162.lua")
+
+--CHIP_NAME = "STM8AF52AA"
+--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8A/STM8AF6226_F6223_F6213.lua")
+--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8A/STM8AF52xx_F62xx_F63xx.lua")
+
+--UIDܺͲƷŴļ
+dofile("0:/H7-TOOL/Programmer/LuaLib/fix_data.lua")
+
+--luaӳ
+dofile("0:/H7-TOOL/Programmer/LuaLib/prog_lib.lua")
+
+--оƬӿںͲ
+function config_chip1(void)
+
+ config_cpu()
+
+ --ϵЧ´
+ REMOVE_RDP_POWEROFF = 0
+ POWEROFF_TIME1 = 0 --дOBӳʱ 2000ms
+ POWEROFF_TIME2 = 100 --ϵʱ 100ms
+ POWEROFF_TIME3 = 20 --ϵȴʱ 100ms
+
+ --б
+ --ļ֧־···ʱluaļͬĿ¼֧../ϼĿ¼
+ TaskList = {
+ "0:/H7-TOOL/Programmer/User/TestBin/8K_5A.bin", --ļ (""ʾ)
+ 0x008000, --Ŀַ (0x008000 Flash)
+
+-- "0:/H7-TOOL/Programmer/User/TestBin/128.bin", --ļ (""ʾ)
+-- EEPROM_ADDRESS, --Ŀַ (0x004000 EEPROM)
+ }
+
+ --CPUѹTVCC
+ TVCC_VOLT = 3.3
+
+ --1ʾƬ0ʾ. ЩCPUƬٶȿܶ࣬Щܶ
+ ERASE_CHIP_ENABLE = 1
+
+ RESET_TYPE = 0 -- 0ʾλ 1ʾӲλ
+
+ --Ƿ˶CPUںID
+ CHECK_MCU_ID = 0
+
+ --̽λ 0ʾλ 1ʾӲλ
+ RESET_AFTER_COMPLETE = 0
+
+ AUTO_REMOVE_PROTECT = 1 --1ʾԶд
+
+ --OPTION BYTES
+ OB_ENABLE = 0 --1ʾϺдOPTION BYTES
+ SECURE_ENABLE = 0 --ѡܻDz
+
+ pg_reload_var() --ڸcȫֱ
+end
+
+--̬SN UID USR
+function config_fix_data(void)
+ SN_ENABLE = 0 --1ʾ 0ʾ
+ SN_SAVE_ADDR = 0 --Ʒűַ
+
+ UID_ENABLE = 0 --1ʾüܺ1 0ʾ
+ UID_SAVE_ADDR = 0 --ܽFLASH洢ַ
+
+ USR_ENABLE = 0 --1ʾ 0ʾ
+ USR_SAVE_ADDR = 0 --Զݴ洢ַ
+end
+
+config_chip1() --ִһθȫֱֵ
+
+config_fix_data() --̬SN UID USR
+
+MULTI_MODE = pg_read_c_var("MultiProgMode")
+
+--------------------------------------------------------------
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8L152x4.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8L152x4.lua
new file mode 100644
index 0000000..28b33f8
--- /dev/null
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8L152x4.lua
@@ -0,0 +1,113 @@
+--¿ݷʽʾPC(STM8)
+--F01=Զ,start_prog()
+--F03=flash,erase_chip(FLASH_ADDRESS)
+--F04=eeprom,erase_chip(EEPROM_ADDRESS)
+--F05=ӡflash,print_flash(FLASH_ADDRESS,512,16,FLASH_ADDRESS)
+--F06=ӡeeprom,print_flash(EEPROM_ADDRESS,256,16,EEPROM_ADDRESS)
+--F07=ӡUID,print_flash(UID_ADDR,12)
+--F08=ӡںid,print_core_id()
+--F09=RAM,pg_write_mem(0, "1234")
+--F10=RAM,print_flash(0, 16)
+--F12=Ӳλ,pg_reset()
+--F13=ö, set_read_protect(1)
+--F14=, set_read_protect(0)
+--F15=ӡOption Bytes,print_option_bytes()
+
+--עͽʾH7-TOOLҺ
+Note01 = "Գ"
+
+beep()
+
+CHIP_NAME = "STM8L152K4"
+
+--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8S/STM8S103_903_003_001.lua")
+--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8S/STM8S105_005_007.lua")
+--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8S/STM8S207_208.lua")
+
+--CHIP_NAME = "STM8L151C8"
+--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8L/STM8L101.lua")
+dofile("0:/H7-TOOL/Programmer/Device/ST/STM8L/STM8L151_152_05x_162.lua")
+
+--CHIP_NAME = "STM8AF52AA"
+--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8A/STM8AF6226_F6223_F6213.lua")
+--dofile("0:/H7-TOOL/Programmer/Device/ST/STM8A/STM8AF52xx_F62xx_F63xx.lua")
+
+--UIDܺͲƷŴļ
+dofile("0:/H7-TOOL/Programmer/LuaLib/fix_data.lua")
+
+--luaӳ
+dofile("0:/H7-TOOL/Programmer/LuaLib/prog_lib.lua")
+
+--оƬӿںͲ
+function config_chip1(void)
+
+ config_cpu()
+
+ --ϵЧ´
+ REMOVE_RDP_POWEROFF = 0
+ POWEROFF_TIME1 = 0 --дOBӳʱ 2000ms
+ POWEROFF_TIME2 = 100 --ϵʱ 100ms
+ POWEROFF_TIME3 = 20 --ϵȴʱ 100ms
+
+ --б
+ --ļ֧־···ʱluaļͬĿ¼֧../ϼĿ¼
+ TaskList = {
+ "0:/H7-TOOL/Programmer/User/TestBin/16K_55.bin", --ļ (""ʾ)
+ 0x008000, --Ŀַ (0x008000 Flash)
+
+ "0:/H7-TOOL/Programmer/User/TestBin/128.bin", --ļ (""ʾ)
+ EEPROM_ADDRESS, --Ŀַ (0x004000 EEPROM)
+ }
+
+ --CPUѹTVCC
+ TVCC_VOLT = 3.3
+
+ --1ʾƬ0ʾ. ЩCPUƬٶȿܶ࣬Щܶ
+ ERASE_CHIP_ENABLE = 1
+
+ RESET_TYPE = 0 -- 0ʾλ 1ʾӲλ
+
+ --Ƿ˶CPUںID
+ CHECK_MCU_ID = 0
+
+ --̽λ 0ʾλ 1ʾӲλ
+ RESET_AFTER_COMPLETE = 0
+
+ AUTO_REMOVE_PROTECT = 1 --1ʾԶд
+
+ --OPTION BYTES
+ OB_ENABLE = 1 --1ʾϺдOPTION BYTES
+ SECURE_ENABLE = 1 --ѡܻDz
+
+ pg_reload_var() --ڸcȫֱ
+end
+
+--̬SN UID USR
+function config_fix_data(void)
+ SN_ENABLE = 0 --1ʾ 0ʾ
+ SN_SAVE_ADDR = 0 --Ʒűַ
+
+ UID_ENABLE = 0 --1ʾüܺ1 0ʾ
+ UID_SAVE_ADDR = 0 --ܽFLASH洢ַ
+
+ USR_ENABLE = 0 --1ʾ 0ʾ
+ USR_SAVE_ADDR = 0 --Զݴ洢ַ
+end
+
+-- STM8L05x/15x, medium density STM8L05x/15x and STM8AL31xx/STM8AL3Lxx and high density STM8L05x/15x/16x microcontrollers,
+-- Ҫ2дܽ
+function MCU_RemoveProtect(void)
+ pg_prog_buf_ob("4800", "AA")
+ delayms(5)
+ pg_prog_buf_ob("4800", "AA")
+ delayms(5)
+ pg_reset()
+end
+
+config_chip1() --ִһθȫֱֵ
+
+config_fix_data() --̬SN UID USR
+
+MULTI_MODE = pg_read_c_var("MultiProgMode")
+
+--------------------------------------------------------------
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8S003x3.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8S003x3.lua
index 9a9fff5..5b18965 100644
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8S003x3.lua
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8S003x3.lua
@@ -1,9 +1,9 @@
--¿ݷʽʾPC(STM8)
--F01=Զ,start_prog()
---F03=flash,erase_chip(0x08000)
---F04=eeprom,erase_chip(0x04000)
---F05=ӡflash,print_flash(0x08000,1024,32,0x08000)
---F06=ӡeeprom,print_flash(0x04000,256,32,0x04000)
+--F03=flash,erase_chip(FLASH_ADDRESS)
+--F04=eeprom,erase_chip(EEPROM_ADDRESS)
+--F05=ӡflash,print_flash(FLASH_ADDRESS,512,16,FLASH_ADDRESS)
+--F06=ӡeeprom,print_flash(EEPROM_ADDRESS,256,16,EEPROM_ADDRESS)
--F07=ӡUID,print_flash(UID_ADDR,12)
--F08=ӡںid,print_core_id()
--F09=RAM,pg_write_mem(0, "1234")
@@ -51,10 +51,10 @@ function config_chip1(void)
--б
--ļ֧־···ʱluaļͬĿ¼֧../ϼĿ¼
TaskList = {
- "0:/H7-TOOL/Programmer/User/TestBin/8K_55.bin", --ļ (""ʾ)
+ "0:/H7-TOOL/Programmer/User/TestBin/8K_5A.bin", --ļ
0x008000, --Ŀַ (0x008000 Flash)
- "0:/H7-TOOL/Programmer/User/TestBin/512.bin", --ļ (""ʾ)
+ "0:/H7-TOOL/Programmer/User/TestBin/128.bin", --ļ
EEPROM_ADDRESS, --Ŀַ (0x004000 EEPROM)
}
@@ -62,7 +62,7 @@ function config_chip1(void)
TVCC_VOLT = 3.3
--1ʾƬ0ʾ. ЩCPUƬٶȿܶ࣬Щܶ
- ERASE_CHIP_ENABLE = 0
+ ERASE_CHIP_ENABLE = 1
RESET_TYPE = 0 -- 0ʾλ 1ʾӲλ
@@ -75,8 +75,8 @@ function config_chip1(void)
AUTO_REMOVE_PROTECT = 1 --1ʾԶд
--OPTION BYTES
- OB_ENABLE = 0 --1ʾϺдOPTION BYTES
- SECURE_ENABLE = 0 --ѡܻDz
+ OB_ENABLE = 1 --1ʾϺдOPTION BYTES
+ SECURE_ENABLE = 1 --ѡܻDz
pg_reload_var() --ڸcȫֱ
end
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8S105x6 .lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8S105x6 .lua
index 01a7b96..0f3d020 100644
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8S105x6 .lua
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8S105x6 .lua
@@ -62,7 +62,7 @@ function config_chip1(void)
TVCC_VOLT = 3.3
--1ʾƬ0ʾ. ЩCPUƬٶȿܶ࣬Щܶ
- ERASE_CHIP_ENABLE = 0
+ ERASE_CHIP_ENABLE = 1
RESET_TYPE = 0 -- 0ʾλ 1ʾӲλ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8S208x8.lua b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8S208x8.lua
index 90c345e..7322066 100644
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8S208x8.lua
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/STM8/demo_STM8S208x8.lua
@@ -62,7 +62,7 @@ function config_chip1(void)
TVCC_VOLT = 3.3
--1ʾƬ0ʾ. ЩCPUƬٶȿܶ࣬Щܶ
- ERASE_CHIP_ENABLE = 0
+ ERASE_CHIP_ENABLE = 1
RESET_TYPE = 0 -- 0ʾλ 1ʾӲλ
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/多路烧录时时钟调节说明.txt b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/多路烧录时时钟调节说明.txt
new file mode 100644
index 0000000..99c01f9
--- /dev/null
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/Programmer/User/Demo/多路烧录时时钟调节说明.txt
@@ -0,0 +1,20 @@
+【多路烧录时时钟调节说明】2020-06-04
+ - 单路烧录只不通过1拖4转接板直接用主机的端口烧录
+ - 多路烧录必须通过1拖4转接板使用(软甲可以设置1路,1-2路,1-3路,1-4路几种模式)
+ - 单独编程时,一般都可以到达最高速度,延迟0
+ - 多路烧录时用较好的杜邦线(20CM长度内),一般都可以设置延迟0
+ - 多路烧录时线较长或线质量一般时,CPU能够达到最高SWCLK时钟速度不同,请根据实际情况自行调节。
+ - 实测
+ STM32H750,可以不加延迟,延迟参数0
+ STM32F030 需要延迟5
+ STM32F429 需要延迟1.
+
+ 【代码范例】
+ --SWD时钟延迟,0不延迟,值越大速度越慢
+ if (MULTI_MODE == 0) then
+ SWD_CLOCK_DELAY = 0 --单路编程
+ else
+ SWD_CLOCK_DELAY = 0 --多路编程,根据实际板子调节,和CPU主频、电缆长度有关
+ end
+
+
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/修改记录.txt b/Doc/存放到eMMC磁盘的文件/H7-TOOL/修改记录.txt
deleted file mode 100644
index 4f39251..0000000
--- a/Doc/存放到eMMC磁盘的文件/H7-TOOL/修改记录.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-EMMC磁盘文件版本 V1.20a 2020-05-29
-
-2020-05-29 V1.20固件配套磁盘文件
-1. 重整H7-TOOL\Programmer文件夹
- - lua脚本支持1拖4同步烧录
- - 添加灵动MM32的lua模板
- - 补充STM32的lua模板
- - 补充STM8的lua模板
-
-2. H7-TOOL\Lua文件夹,添加几个产品测试的范例
- - TTL-RS485.lua
- - h7_主板功能初测
- - H7_自动校准.lua
- - 无线IO模块TOOL版.lua
\ No newline at end of file
diff --git a/Doc/存放到eMMC磁盘的文件/H7-TOOL/版本说明V1.21a.txt b/Doc/存放到eMMC磁盘的文件/H7-TOOL/版本说明V1.21a.txt
new file mode 100644
index 0000000..69dcf5f
--- /dev/null
+++ b/Doc/存放到eMMC磁盘的文件/H7-TOOL/版本说明V1.21a.txt
@@ -0,0 +1,23 @@
+EMMC磁盘文件版本 V1.21a 2020-06-05
+
+---------------------------------------------------
+2020-06-04 V1.21a - 随固件V1.21一起发布
+1. 修正STM8脚本错误导致不能烧录, 更新如下3个文件件
+ - H7-TOOL\Programmer\Device\ST\STM8S
+ - H7-TOOL\Programmer\Device\ST\STM8L
+ - H7-TOOL\Programmer\Device\ST\STM8A
+2. 修正 prog_lib.lua 文件,完善STM8L解除保护功能
+
+---------------------------------------------------
+2020-05-29 V1.20a
+1. 重整H7-TOOL\Programmer文件夹
+ - lua脚本支持1拖4同步烧录
+ - 添加灵动MM32的lua模板
+ - 补充STM32的lua模板
+ - 补充STM8的lua模板
+
+2. H7-TOOL\Lua文件夹,添加几个产品测试的范例
+ - TTL-RS485.lua
+ - h7_主板功能初测
+ - H7_自动校准.lua
+ - 无线IO模块TOOL版.lua
\ No newline at end of file
diff --git a/Doc/待解决问题.txt b/Doc/待解决问题.txt
index c364c97..e89f882 100644
--- a/Doc/待解决问题.txt
+++ b/Doc/待解决问题.txt
@@ -6,9 +6,4 @@
#define TICK_INT_PRIORITY 0 // ((uint32_t)0x0F) /*!< tick interrupt priority */
4. bsp_CheckRunTime, bsp_GetRunTime 函数内部去掉关闭中断的操作,影响QSPI写操作。
-2020-05-29 V1.20版 遗留问题
-5. 1拖4功能。烧写H750成功率100% 烧写STM32F030 时,偶尔出错
- - 怀疑GPIO阻抗匹配问题。已将QSPI Flash GPIO速度和TFT LCD SPI的GPIO速度降低。但是改善不明显
- - 也可能和程序运行状态有关,比如USB访问,以太网访问。一段时间几秒钟内总是出错。过了一段时间,总是成功。
- - 也许和目标CPU的程序有关,因为烧写的测试程序是全55。CPU上电后进入异常中断。
\ No newline at end of file
diff --git a/Project/MDK-ARM(uV5)/project.uvoptx b/Project/MDK-ARM(uV5)/project.uvoptx
index 2678cd9..03869da 100755
--- a/Project/MDK-ARM(uV5)/project.uvoptx
+++ b/Project/MDK-ARM(uV5)/project.uvoptx
@@ -153,24 +153,7 @@
-
-
- 0
- 0
- 189
- 1
- 134703506
- 0
- 0
- 0
- 0
- 0
- 1
- ..\..\User\app\src\status_programmer.c
-
- \\output\../../User/app/src/status_programmer.c\189
-
-
+
0
@@ -202,6 +185,11 @@
1
g_tProg.FilePath
+
+ 6
+ 1
+ bytes
+
@@ -937,7 +925,7 @@
MDK-ARM
- 0
+ 1
0
0
0
@@ -2705,7 +2693,7 @@
Programmer
- 0
+ 1
0
0
0
@@ -3237,7 +3225,7 @@
Lua_IF
- 1
+ 0
0
0
0
diff --git a/Project/MDK-ARM(uV5)/startup_stm32h743xx.s b/Project/MDK-ARM(uV5)/startup_stm32h743xx.s
index 0679312..7d68568 100755
--- a/Project/MDK-ARM(uV5)/startup_stm32h743xx.s
+++ b/Project/MDK-ARM(uV5)/startup_stm32h743xx.s
@@ -68,7 +68,7 @@ __Vectors DCD __initial_sp ; Top of Stack
DCD MemManage_Handler ; MPU Fault Handler
DCD BusFault_Handler ; Bus Fault Handler
DCD UsageFault_Handler ; Usage Fault Handler
- DCD 0x00000120 ; Reserved H7-TOOL APP 固件版本
+ DCD 0x00000121 ; Reserved H7-TOOL APP 固件版本
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
diff --git a/Project/h7_tool_app(V1.09).bin b/Project/h7_tool_app(V1.21).bin
similarity index 64%
rename from Project/h7_tool_app(V1.09).bin
rename to Project/h7_tool_app(V1.21).bin
index 2d673cc..5e8ab9a 100644
Binary files a/Project/h7_tool_app(V1.09).bin and b/Project/h7_tool_app(V1.21).bin differ
diff --git a/User/app/src/status_programmer.c b/User/app/src/status_programmer.c
index 1f0e2f9..707d3b3 100755
--- a/User/app/src/status_programmer.c
+++ b/User/app/src/status_programmer.c
@@ -1012,6 +1012,9 @@ void status_ProgModifyParam(void)
if (fSaveParam == 1)
{
SaveParam(); /* 保存参数 */
+
+ /* 通知lua程序,多路编程参数变化 */
+ lua_do("MULTI_MODE = pg_read_c_var(\"MultiProgMode\")");
}
}
diff --git a/User/daplink/source/daplink/cmsis-dap/SW_DP_Multi.c b/User/daplink/source/daplink/cmsis-dap/SW_DP_Multi.c
index 7a9840b..ee3a29b 100644
--- a/User/daplink/source/daplink/cmsis-dap/SW_DP_Multi.c
+++ b/User/daplink/source/daplink/cmsis-dap/SW_DP_Multi.c
@@ -209,57 +209,12 @@ static __forceinline void MUL_PIN_SWCLK_SET(void)
BSP_SET_GPIO_1(MUL_GPIO_SWD, g_gMulSwd.SWCLK_Pins);
}
-/* */
+/* 高速 */
static __forceinline void MUL_PIN_SWCLK_CLR(void)
{
BSP_SET_GPIO_0(MUL_GPIO_SWD, g_gMulSwd.SWCLK_Pins);
}
-/* */
-#define MUL_SEND_32BIT_ONCE_FAST() \
- if (val & 1) { \
- MUL_GPIO_SWD->BSRR = CLK_0_DIO_1; \
- val >>= 1; \
- MUL_PIN_SWCLK_SET(); \
- } \
- else { \
- MUL_GPIO_SWD->BSRR = CLK_0_DIO_0; \
- val >>= 1; \
- MUL_PIN_SWCLK_SET(); \
- }
-static __forceinline void MUL_SEND_32BIT(uint32_t val)
-{
-// uint32_t i;
-//
-// for (i = 0; i < 32; i++)
-// {
-// if (val & 1)
-// {
-// MUL_GPIO_SWD->BSRR = g_gMulSwd.CLK_0_DIO_1;
-// val >>= 1;
-// MUL_PIN_SWCLK_SET();
-// }
-// else
-// {
-
-// MUL_GPIO_SWD->BSRR = g_gMulSwd.CLK_0_DIO_0;
-// val >>= 1;
-// MUL_PIN_SWCLK_SET();
-// }
-// }
- uint32_t CLK_0_DIO_1 = g_gMulSwd.CLK_0_DIO_1;
- uint32_t CLK_0_DIO_0 = g_gMulSwd.CLK_0_DIO_0;
-
- MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
- MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
- MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
- MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
- MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
- MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
- MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
- MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
-}
-
/* SPI软件模式,低速配置 */
#define PIN_DELAY_S() PIN_DELAY_SLOW(DAP_Data.clock_delay)
#define MUL_SW_CLOCK_CYCLE_SLOW() MUL_PIN_SWCLK_CLR(); PIN_DELAY_S(); MUL_PIN_SWCLK_SET(); PIN_DELAY_S()
@@ -273,6 +228,60 @@ static __forceinline void MUL_SEND_32BIT(uint32_t val)
#define MUL_SW_READ_BIT_FAST(bit) MUL_PIN_SWCLK_CLR(); bit = MUL_PIN_SWDIO_IN(); MUL_PIN_SWCLK_SET();
+/* 高速模式*/
+#define MUL_SEND_32BIT_ONCE_FAST() \
+ if (val & 1) { \
+ MUL_GPIO_SWD->BSRR = CLK_0_DIO_1; \
+ val >>= 1; \
+ MUL_PIN_SWCLK_SET(); \
+ } \
+ else { \
+ MUL_GPIO_SWD->BSRR = CLK_0_DIO_0; \
+ val >>= 1; \
+ MUL_PIN_SWCLK_SET(); \
+ }
+static __forceinline void MUL_SEND_32BIT_FAST(uint32_t val)
+{
+ uint32_t CLK_0_DIO_1 = g_gMulSwd.CLK_0_DIO_1;
+ uint32_t CLK_0_DIO_0 = g_gMulSwd.CLK_0_DIO_0;
+
+ MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
+ MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
+ MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
+ MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
+ MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
+ MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
+ MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
+ MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();MUL_SEND_32BIT_ONCE_FAST();
+}
+
+/* 低速模式 */
+#define MUL_SEND_32BIT_ONCE_SLOW() \
+ if (val & 1) { \
+ MUL_GPIO_SWD->BSRR = CLK_0_DIO_1; PIN_DELAY_S();\
+ val >>= 1; \
+ MUL_PIN_SWCLK_SET(); PIN_DELAY_S();\
+ } \
+ else { \
+ MUL_GPIO_SWD->BSRR = CLK_0_DIO_0; PIN_DELAY_S();\
+ val >>= 1; \
+ MUL_PIN_SWCLK_SET(); PIN_DELAY_S();\
+ }
+static __forceinline void MUL_SEND_32BIT_SLOW(uint32_t val)
+{
+ uint32_t CLK_0_DIO_1 = g_gMulSwd.CLK_0_DIO_1;
+ uint32_t CLK_0_DIO_0 = g_gMulSwd.CLK_0_DIO_0;
+
+ MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();
+ MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();
+ MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();
+ MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();
+ MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();
+ MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();
+ MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();
+ MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();MUL_SEND_32BIT_ONCE_SLOW();
+}
+
extern uint8_t GetParity(uint32_t data);
/*
@@ -505,7 +514,7 @@ uint8_t* MUL_SWD_TransferFast(uint32_t request, uint32_t *data)
/* armfly : 优化奇偶校验算法 */
pb = GetParity(val);
- MUL_SEND_32BIT(val);
+ MUL_SEND_32BIT_FAST(val);
MUL_SW_WRITE_BIT_FAST(pb); /* Write Parity Bit */
}
@@ -763,7 +772,7 @@ uint8_t* MUL_SWD_TransferSlow(uint32_t request, uint32_t *data)
/* armfly : 优化奇偶校验算法 */
pb = GetParity(val);
- MUL_SEND_32BIT(val);
+ MUL_SEND_32BIT_SLOW(val);
MUL_SW_WRITE_BIT_SLOW(pb); /* Write Parity Bit */
}
diff --git a/User/lua/if/lua_if_swd.c b/User/lua/if/lua_if_swd.c
index 916c79e..0c7c6d7 100755
--- a/User/lua/if/lua_if_swd.c
+++ b/User/lua/if/lua_if_swd.c
@@ -676,6 +676,7 @@ static int h7swd_Read32(lua_State* L)
{
uint32_t addr;
uint32_t num = 4;
+ uint8_t err = 0;
if (lua_type(L, 1) == LUA_TNUMBER) /* 判断第1个参数 */
{
@@ -683,48 +684,63 @@ static int h7swd_Read32(lua_State* L)
}
else
{
- lua_pushnumber(L, 0); /* 出错返回0 */
- return 1;
+ return 0; /* 返回 nil */
}
if (g_tProg.ChipType == CHIP_SWD_ARM)
{
if (g_gMulSwd.MultiMode > 0) /* 多路模式 */
{
+ memset(s_lua_read_buf, 0, 4 * num);
if (MUL_swd_read_memory(addr, s_lua_read_buf, num) == 0)
+ {
+ err = 1;
+ }
+
+ lua_pushnumber(L, *(uint32_t *)s_lua_read_buf);
+ lua_pushnumber(L, *(uint32_t *)(s_lua_read_buf + num));
+ lua_pushnumber(L, *(uint32_t *)(s_lua_read_buf + 2 * num));
+ lua_pushnumber(L, *(uint32_t *)(s_lua_read_buf + 3 * num));
+
+ if (err == 1)
{
lua_pushnumber(L, 0); /* 出错 */
}
else
{
lua_pushnumber(L, 1); /* 成功 */
- }
-
- lua_pushnumber(L, *(uint32_t *)s_lua_read_buf);
- lua_pushnumber(L, *(uint32_t *)(s_lua_read_buf + num));
- lua_pushnumber(L, *(uint32_t *)(s_lua_read_buf + 2 * num));
- lua_pushnumber(L, *(uint32_t *)(s_lua_read_buf + 3 * num));
+ }
return 5;
}
else
{
if (swd_read_memory(addr, s_lua_read_buf, num) == 0)
+ {
+ err = 1; /* 出错 */
+ }
+
+ lua_pushnumber(L, *(uint32_t *)s_lua_read_buf);
+
+ if (err == 1)
{
lua_pushnumber(L, 0); /* 出错 */
}
else
{
lua_pushnumber(L, 1); /* 成功 */
- }
-
- lua_pushnumber(L, *(uint32_t *)s_lua_read_buf);
-
+ }
return 2;
}
}
else if (g_tProg.ChipType == CHIP_SWIM_STM8)
{
if (SWIM_ReadBuf(addr, s_lua_read_buf, num) == 0)
+ {
+ err = 1; /* 出错 */
+ }
+ lua_pushnumber(L, *(uint32_t *)s_lua_read_buf);
+
+ if (err == 1)
{
lua_pushnumber(L, 0); /* 出错 */
}
@@ -732,15 +748,14 @@ static int h7swd_Read32(lua_State* L)
{
lua_pushnumber(L, 1); /* 成功 */
}
-
- lua_pushnumber(L, *(uint32_t *)s_lua_read_buf);
return 2;
}
else
{
- lua_pushnumber(L, 0); /* 出错 */
- return 1;
- }
+ lua_pushnumber(L, 0); /* 出错 */
+ lua_pushnumber(L, 0); /* 出错 */
+ return 2;
+ }
}
/*
@@ -756,6 +771,7 @@ static int h7swd_Read16(lua_State* L)
{
uint32_t addr;
uint32_t num = 2;
+ uint8_t err = 0;
if (lua_type(L, 1) == LUA_TNUMBER) /* 判断第1个参数 */
{
@@ -763,48 +779,63 @@ static int h7swd_Read16(lua_State* L)
}
else
{
- lua_pushnumber(L, 0); /* 出错返回0 */
- return 1;
+ return 0; /* 返回 nil */
}
if (g_tProg.ChipType == CHIP_SWD_ARM)
{
if (g_gMulSwd.MultiMode > 0) /* 多路模式 */
{
+ memset(s_lua_read_buf, 0, 4 * num);
if (MUL_swd_read_memory(addr, s_lua_read_buf, num) == 0)
+ {
+ err = 1;
+ }
+
+ lua_pushnumber(L, *(uint16_t *)s_lua_read_buf);
+ lua_pushnumber(L, *(uint16_t *)(s_lua_read_buf + num));
+ lua_pushnumber(L, *(uint16_t *)(s_lua_read_buf + 2 * num));
+ lua_pushnumber(L, *(uint16_t *)(s_lua_read_buf + 3 * num));
+
+ if (err == 1)
{
lua_pushnumber(L, 0); /* 出错 */
}
else
{
lua_pushnumber(L, 1); /* 成功 */
- }
-
- lua_pushnumber(L, *(uint16_t *)s_lua_read_buf);
- lua_pushnumber(L, *(uint16_t *)(s_lua_read_buf + num));
- lua_pushnumber(L, *(uint16_t *)(s_lua_read_buf + 2 * num));
- lua_pushnumber(L, *(uint16_t *)(s_lua_read_buf + 3 * num));
+ }
return 5;
}
else
{
if (swd_read_memory(addr, s_lua_read_buf, num) == 0)
+ {
+ err = 1; /* 出错 */
+ }
+
+ lua_pushnumber(L, *(uint16_t *)s_lua_read_buf);
+
+ if (err == 1)
{
lua_pushnumber(L, 0); /* 出错 */
}
else
{
lua_pushnumber(L, 1); /* 成功 */
- }
-
- lua_pushnumber(L, *(uint16_t *)s_lua_read_buf);
-
+ }
return 2;
}
}
else if (g_tProg.ChipType == CHIP_SWIM_STM8)
{
if (SWIM_ReadBuf(addr, s_lua_read_buf, num) == 0)
+ {
+ err = 1; /* 出错 */
+ }
+ lua_pushnumber(L, *(uint16_t *)s_lua_read_buf);
+
+ if (err == 1)
{
lua_pushnumber(L, 0); /* 出错 */
}
@@ -812,15 +843,14 @@ static int h7swd_Read16(lua_State* L)
{
lua_pushnumber(L, 1); /* 成功 */
}
-
- lua_pushnumber(L, *(uint16_t *)s_lua_read_buf);
return 2;
}
else
{
- lua_pushnumber(L, 0); /* 出错 */
- return 1;
- }
+ lua_pushnumber(L, 0); /* 出错 */
+ lua_pushnumber(L, 0); /* 出错 */
+ return 2;
+ }
}
/*
@@ -834,8 +864,9 @@ static int h7swd_Read16(lua_State* L)
*/
static int h7swd_Read8(lua_State* L)
{
- uint32_t addr;
+ uint32_t addr;
uint32_t num = 1;
+ uint8_t err = 0;
if (lua_type(L, 1) == LUA_TNUMBER) /* 判断第1个参数 */
{
@@ -843,48 +874,63 @@ static int h7swd_Read8(lua_State* L)
}
else
{
- lua_pushnumber(L, 0); /* 出错返回0 */
- return 1;
+ return 0; /* 返回 nil */
}
if (g_tProg.ChipType == CHIP_SWD_ARM)
{
if (g_gMulSwd.MultiMode > 0) /* 多路模式 */
{
+ memset(s_lua_read_buf, 0, 4 * num);
if (MUL_swd_read_memory(addr, s_lua_read_buf, num) == 0)
+ {
+ err = 1;
+ }
+
+ lua_pushnumber(L, *(uint8_t *)s_lua_read_buf);
+ lua_pushnumber(L, *(uint8_t *)(s_lua_read_buf + num));
+ lua_pushnumber(L, *(uint8_t *)(s_lua_read_buf + 2 * num));
+ lua_pushnumber(L, *(uint8_t *)(s_lua_read_buf + 3 * num));
+
+ if (err == 1)
{
lua_pushnumber(L, 0); /* 出错 */
}
else
{
lua_pushnumber(L, 1); /* 成功 */
- }
-
- lua_pushnumber(L, *(uint8_t *)s_lua_read_buf);
- lua_pushnumber(L, *(uint8_t *)(s_lua_read_buf + num));
- lua_pushnumber(L, *(uint8_t *)(s_lua_read_buf + 2 * num));
- lua_pushnumber(L, *(uint8_t *)(s_lua_read_buf + 3 * num));
+ }
return 5;
}
else
{
if (swd_read_memory(addr, s_lua_read_buf, num) == 0)
+ {
+ err = 1; /* 出错 */
+ }
+
+ lua_pushnumber(L, *(uint8_t *)s_lua_read_buf);
+
+ if (err == 1)
{
lua_pushnumber(L, 0); /* 出错 */
}
else
{
lua_pushnumber(L, 1); /* 成功 */
- }
-
- lua_pushnumber(L, *(uint8_t *)s_lua_read_buf);
-
+ }
return 2;
}
}
else if (g_tProg.ChipType == CHIP_SWIM_STM8)
{
if (SWIM_ReadBuf(addr, s_lua_read_buf, num) == 0)
+ {
+ err = 1; /* 出错 */
+ }
+ lua_pushnumber(L, *(uint8_t *)s_lua_read_buf);
+
+ if (err == 1)
{
lua_pushnumber(L, 0); /* 出错 */
}
@@ -892,15 +938,14 @@ static int h7swd_Read8(lua_State* L)
{
lua_pushnumber(L, 1); /* 成功 */
}
-
- lua_pushnumber(L, *(uint8_t *)s_lua_read_buf);
return 2;
}
else
{
- lua_pushnumber(L, 0); /* 出错 */
- return 1;
- }
+ lua_pushnumber(L, 0); /* 出错 */
+ lua_pushnumber(L, 0); /* 出错 */
+ return 2;
+ }
}
/*
@@ -953,6 +998,10 @@ static int h7_LoadAlgoFile(lua_State* L)
{
g_tVar.SaveAlgoToCFile = luaL_checknumber(L, 4);
}
+ else
+ {
+ g_tVar.SaveAlgoToCFile = 0;
+ }
g_AlgoRam.Valid = 1;
@@ -1070,20 +1119,32 @@ static int h7_ProgFile(lua_State* L)
extern void MUL_swd_set_target_reset(uint8_t asserted);
static int h7_reset(lua_State* L)
{
+ uint32_t delay;
+
+
+ if (lua_type(L, 1) == LUA_TNUMBER) /* 判断第1个参数 */
+ {
+ delay = luaL_checknumber(L, 1);
+ }
+ else
+ {
+ delay = 20; /* 没有形参,则用20ms */
+ }
+
/* 硬件复位 */
if (g_gMulSwd.MultiMode > 0) /* 多路模式 */
{
MUL_swd_set_target_reset(1);
- osDelay(20);
+ osDelay(delay);
MUL_swd_set_target_reset(0);
- osDelay(20);
+ osDelay(delay);
}
else
{
swd_set_target_reset(1);
- osDelay(20);
+ osDelay(delay);
swd_set_target_reset(0);
- osDelay(20);
+ osDelay(delay);
}
return 0;
diff --git a/User/lua/if/lua_if_swim.c b/User/lua/if/lua_if_swim.c
index 5e619f1..1ad6007 100644
--- a/User/lua/if/lua_if_swim.c
+++ b/User/lua/if/lua_if_swim.c
@@ -105,7 +105,18 @@ void h7swim_ReadLuaVar(void)
{
PG_PrintText("脚本错误 EEPROM_SIZE");
}
- lua_pop(g_Lua, 1);
+ lua_pop(g_Lua, 1);
+
+ lua_getglobal(g_Lua, "STM8_HVOFF");
+ if (lua_isinteger(g_Lua, -1))
+ {
+ s_STM8_HVOFF = lua_tointeger(g_Lua, -1);
+ }
+ else
+ {
+ s_STM8_HVOFF = 0;
+ }
+ lua_pop(g_Lua, 1);
}
///*
diff --git a/User/programmer/prog_if.c b/User/programmer/prog_if.c
index 351637b..8e9cb6b 100755
--- a/User/programmer/prog_if.c
+++ b/User/programmer/prog_if.c
@@ -1373,7 +1373,14 @@ uint16_t PG_SWD_ProgFile(char *_Path, uint32_t _FlashAddr)
}
else /* VERIFY_READ_BACK */
{
- PG_PrintText("正在校验...(Readback)");
+ if (flash_algo.verify > 0)
+ {
+ PG_PrintText("正在校验...(FLM_Verify)");
+ }
+ else
+ {
+ PG_PrintText("正在校验...(Readback)");
+ }
}
/* 加载MCU的编程算法到目标机内存 */
@@ -1444,6 +1451,23 @@ uint16_t PG_SWD_ProgFile(char *_Path, uint32_t _FlashAddr)
{
uint32_t crc1, crc2;
+ /* 文件长度不是4字节整数倍,则补齐后再进行硬件CRC32 */
+ {
+ uint8_t rem;
+ uint8_t k;
+
+ rem = bytes % 4;
+ if (rem > 0)
+ {
+ rem = 4 - rem;
+ for (k = 0; k < rem; k++)
+ {
+ FsReadBuf[bytes + k] = g_tFLM.Device.valEmpty;
+ }
+ bytes += rem;
+ }
+ }
+
if (flash_algo.cacul_crc32 > 0 && g_tProg.VerifyMode == VERIFY_AUTO) /* 执行FLM中的crc算法 */
{
crc1 = target_flash_cacul_crc32(g_tFLM.Device.DevAdr + addr, bytes, 0xFFFFFFFF);
@@ -1509,8 +1533,23 @@ uint16_t PG_SWD_ProgFile(char *_Path, uint32_t _FlashAddr)
addr += PageSize;
FileOffset += PageSize;
}
+ else if (flash_algo.verify > 0) /* FLM有verify校验函数 */
+ {
+ if (target_flash_verify_page(g_tFLM.Device.DevAdr + addr, flash_buff, bytes) != 0)
+ {
+ {
+ char buf[128];
+
+ sprintf(buf, "校验失败, 0x%08X", g_tFLM.Device.DevAdr + addr);
+ PG_PrintText(buf);
+ }
+ err = 1;
+ goto quit;
+ }
+ }
else /* readback 校验 */
{
+
if (g_gMulSwd.MultiMode > 0) /* 多路模式 */
{
uint8_t i;
diff --git a/User/programmer/stm8_flash.c b/User/programmer/stm8_flash.c
index 2b0e27c..9b99b39 100644
--- a/User/programmer/stm8_flash.c
+++ b/User/programmer/stm8_flash.c
@@ -605,11 +605,15 @@ uint8_t STM8_ProgramOptionBytes(uint8_t *_AddrBuf, uint16_t _AddrLen, uint8_t *_
bsp_DelayUS(500);
if (Address == 0x4800)
{
- STM8_WaitIAPSR_Flag(STM8_FLASH_IAPSR_EOP, 1, 1000); /* 1000ms超时 */
+ re = STM8_WaitIAPSR_Flag(STM8_FLASH_IAPSR_EOP, 1, 2000); /* 1000ms超时 */
}
else
{
- STM8_WaitIAPSR_Flag(STM8_FLASH_IAPSR_EOP, 1, 50); /* 50ms超时 */
+ re = STM8_WaitIAPSR_Flag(STM8_FLASH_IAPSR_EOP, 1, 50); /* 50ms超时 */
+ }
+ if (re == 0)
+ {
+ goto err_quit;
}
bsp_DelayUS(50);
STM8_WriteReg_CR2(0); /* 不确定是否需要这句话 解除编程操作*/