[Lua] 纯文本查看 复制代码
-------------------------------------------------------
-- 文件名 : LCM32F067_64.lua
-- 版 本 : V1.0 2025-12-13
-- 说 明 :
-------------------------------------------------------
print("load \"LCM32F067_64.lua.lua\" ok")
IncludeList = {
"0:/H7-TOOL/Programmer/Device/LINGXIN/Lib/LCM32F0xx_Lib.lua"
}
function config_cpu(void)
CHIP_TYPE = "SWD" --指定器件接口类型: "SWD", "SWIM", "SPI", "I2C", "UART"
AlgoFile_FLASH = "0:/H7-TOOL/Programmer/Device/LINGXIN/LCM32F0xx/FLM/LCM32F067_FLASH.FLM"
AlgoFile_EEPROM = ""
AlgoFile_OTP = ""
AlgoFile_OPT = ""
AlgoFile_QSPI = ""
FLASH_ADDRESS = 0x08000000 --CPU内部FLASH起始地址
FLASH_SIZE = 0x10000 --覆盖FLM中的 Device
RAM_ADDRESS = 0x20000000 --CPU内部RAM起始地址
RAM_SIZE = 0x2800
--Flash算法文件加载内存地址和大小
AlgoRamAddr = RAM_ADDRESS
AlgoRamSize = RAM_SIZE
MCU_ID = 0x0BC11477 --IDCODE
UID_NONE = 1 --0表示有UID 1表示无UID
UID_ADDR = 0x180000F0 --UID地址,不同的CPU不同
UID_BYTES = 0
ERASE_CHIP_TIME = 3000 --全片擦除时间ms(STM32F207解除读保护会执行全面擦除,等待时间大概15秒)
VALUE_ERASED = 0xFF --芯片擦除后缺省值,一般是FF, 00。ARM从FLM中取,不用这个值。
--OB使用文件方式烧录(适合256字节以上)
OB_FILE_USED = 0 --1表示使用文件方式烧录,0表示用字符串方式烧录,-1表示不支持OB区烧录
OB_ADDRESS = "1FFFF600 FFFFFFFF 1FFFF602 FFFFFFFF "..
"1FFFF604 FFFFFFFF 1FFFF606 FFFFFFFF "..
"1FFFF608 FFFFFFFF 1FFFF60A FFFFFFFF "..
"1FFFF60C FFFFFFFF 1FFFF60E FFFFFFFF "..
"1FFFF610 FFFFFFFF 1FFFF612 FFFFFFFF "..
"1FFFF614 FFFFFFFF 1FFFF616 FFFFFFFF "..
"1FFFF618 FFFFFFFF 1FFFF61A FFFFFFFF "..
"1FFFF61C FFFFFFFF 1FFFF61E FFFFFFFF "..
"1FFFF620 FFFFFFFF 1FFFF622 FFFFFFFF "..
"1FFFF624 FFFFFFFF 1FFFF626 FFFFFFFF "
OB_SECURE_OFF = "FB FF FF FF FF FF FF FF AA AA AA AA AA AA AA AA AA AA AA AA" --SECURE_ENABLE = 0时,编程完毕后写入该值
OB_SECURE_ON = "FB FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 AA AA AA AA" --SECURE_ENABLE = 1时,编程完毕后写入该值
--判断读保护和写保护的条件(WRP = Write protection)
OB_WRP_ADDRESS = {0x1FFFF610, 0x1FFFF612, 0x1FFFF614, 0x1FFFF616, 0x1FFFF618, 0x1FFFF61A, 0x1FFFF61C, 0x1FFFF61E} --内存地址 Read Only Register
OB_WRP_MASK = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF} --读出数据与此数相与
OB_WRP_VALUE = {0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA} --相与后与此数比较,相等表示没有写保护
--额外的控制指令
FLM_INIT_BEFOR_PROG = 1 --编程前需要重新执行一下Init
FLM_INIT_BEFOR_VERIFY = 1 --FlM Verify前需要重新执行一下Init
--DEBUG_AP = 0
--DISABLE_BLOCK_ACCESS = 0
--IGNORE_WRITE_OB_SECURE_OFF = 1 --解除读保护时全擦芯片,无需再写入OB缺省值
end
--用于PC软件, 设置缺省配置参数
function pc_default(void)
TVCC_VOLT = 3.3 --定义CPU供电电压TVCC
VERIFY_MODE = 0 --校验模式: 0:自动(FLM提供校验函数或读回) 1:读回 2:软件CRC32 3:STM32硬件CRC32
REMOVE_RDP_POWEROFF = 1 --写完OB后需要断电
POWEROFF_TIME1 = 0 --写完OB延迟时间ms
POWEROFF_TIME2 = 100 --断电时间ms
POWEROFF_TIME3 = 20 --上电后等待时间ms
SWD_CLOCK_DELAY_0 = 0 --单路和多路烧录时的时钟延迟
SWD_CLOCK_DELAY_INIT = SWD_CLOCK_DELAY_0 --初始化阶段的时钟延迟
AUTO_REMOVE_PROTECT = 1 --自动解除读保护,-1表示不支持
ISP_UNLOCK = 0 --支持ISP串口解锁
ISP_LOCK = 0 --支持ISP串口加锁
RESET_MODE = 2 --复位模式 0:自动模式, 1:软件模式 2:硬件模式 3: UnderReset
RESET_AFTER_PROG = 1 --编程结束后 0不复位 1复位 2断电重启 3断电
ERASE_CHIP_MODE = 1 --0按扇区擦除 1擦除全片
OB_CONFIG_ENABLE = 0 --启用OB配置旋钮
--OB参数解析文件(和本文件同目录,无需全路径)
--OB_PARAM_FILE =
CHECK_MCU_ID = 0 --缺省不启用IDCODE检查
--供PC软件选择算法的列表 (算法文件名, 地址,大小,32bit控制字bit1表示禁止查空, 同时预留4个字段 )
AlgoFile_ListA = {
"AlgoFile_FLASH" , FLASH_ADDRESS, FLASH_SIZE, 0x00000000, 0, 0, 0, 0,
--"AlgoFile_EE256B", 0x10000000, 0x0100, 0x00000002, 0, 0, 0, 0, --EEPROM不支持加载算法查空
}
--将指定此地址范围内的文件单独分割出来
--HEX_FILE_DIV = {
-- 0x90300000, 0x100000, --起始地址, 大小
--}
NOTE_PC = "" --在器件选择框下面显示重要提示内容
--有如下行,将自动展示文件内容到LOG窗口
--VIEW_HELP_FILE = "readme.txt"
end
--判断数据文件合法性
--flm 算法名,数据文件内容,写入地址
function pc_check_file(flm, data, addr)
--return flm.." 加载的数据文件属于非法数据,可能导致芯片锁死" --文件有效
return "OK"
end