跳到主要内容

(2)flm文件转换成Lua数据结构

提示

每个目标mcu芯片都有一个属于自己的flm烧录算法,这个flm文件可以在keil的安装路径中找到,也可以通过Keil的Pack Install安装所需的flm文件。 同时,在flm文件夹中也收集了一些常见32单片机的.flm文件,需要的可以直接复制使用。 flm文件夹位于flexluadisk->Software -> 跨界32离线烧录器 -> flm

一、准备工作

进入文件夹flexluadisk->Software -> 跨界32离线烧录器 -> Flm2Lua

二、转换方法

  • 将对应单片机型号的.Flm文件放入 Flm2Lua 文件夹
  • 然后鼠标双击运行 flm2lua.exe 文件,即会基于.flm文件生成属于目标芯片的lua数据结构(位于新生成的文件夹中的main.lua文件里),打开文件并复制其中的lua数据结构内容即可。

三、Lua数据结构样例

以下是STM32F103C8T6

FLASH_START_ADDR = 0x08000000 --目标芯片flash烧录起始地址,请检查是否正确!
FLASH_PAGE_SIZE = 1024 --目标芯片flash页(page)大小,请检查是否正确!

program_syscall = {
breakpoint = 0x20000001,
static_base = 0x20000148,
stack_pointer = 0x2000094C
}

flash_algo = {
init = 0x20000021,
uninit = 0x20000053,
erase_chip = 0x20000065,
erase_sector = 0x2000009F,
program_page = 0x200000DD,

program_buffer = 0x2000014C,
algo_start = 0x20000000,
program_buffer_size = 0x00000400
}

flash_code = {
0xE00ABE00, 0x062D780D, 0x24084068, 0xD3000040, 0x1E644058, 0x1C49D1FA, 0x2A001E52, 0x4770D1F2,
0x4603B510, 0x4C442000, 0x48446020, 0x48446060, 0x46206060, 0xF01069C0, 0xD1080F04, 0x5055F245,
0x60204C40, 0x60602006, 0x70FFF640, 0x200060A0, 0x4601BD10, 0x69004838, 0x0080F040, 0x61104A36,
0x47702000, 0x69004834, 0x0004F040, 0x61084932, 0x69004608, 0x0040F040, 0xE0036108, 0x20AAF64A,
0x60084930, 0x68C0482C, 0x0F01F010, 0x482AD1F6, 0xF0206900, 0x49280004, 0x20006108, 0x46014770,
0x69004825, 0x0002F040, 0x61104A23, 0x61414610, 0xF0406900, 0x61100040, 0xF64AE003, 0x4A2120AA,
0x481D6010, 0xF01068C0, 0xD1F60F01, 0x6900481A, 0x0002F020, 0x61104A18, 0x47702000, 0x4603B510,
0xF0201C48, 0xE0220101, 0x69004813, 0x0001F040, 0x61204C11, 0x80188810, 0x480FBF00, 0xF01068C0,
0xD1FA0F01, 0x6900480C, 0x0001F020, 0x61204C0A, 0x68C04620, 0x0F14F010, 0x4620D006, 0xF04068C0,
0x60E00014, 0xBD102001, 0x1C921C9B, 0x29001E89, 0x2000D1DA, 0x0000E7F7, 0x40022000, 0x45670123,
0xCDEF89AB, 0x40003000, 0x00000000
}

另外:flm2lua.exe 是由 Python 代码 flm2lua.py 打包生成,所以如果您的电脑不是 win,而 是 Mac 或 linux 电脑,那么使用 Python 代码也同样可以完成以上的功能。