Skip to main content

mp.target_builder — 9 functions

FunctionReturnsDescription
create(def)tableWrap definition into a handle {_def, name}; no validation (deferred to add/modify)
add_to_family(family, handle)ok, errPersist target (validates name + at least one region)
modify(family, currentName, handle)ok, errUpdate existing target
delete_target(family, name)voidRemove target
export_json(path, vendor, family, prog, {handles})errExport family JSON file
import_json(path)table{vendor, family, programmer, targets[], error?}
user_targets_dir()stringUser-editable targets directory
package_types()tableArray of supported package strings (QFP, LQFP, QFN, …)
programmer_pins(type)tablePin names for "stlink" | "usbdm" | "tgsn" | "esp" (case- and separator-insensitive); has .power and .reference sub-tables

Example

local t = mp.target_builder.create({
name = "MY_CHIP",
bl_size = 1024,
fixed_vdd = "3.3v",
regions = {
{name = "Flash", start_addr = 0x08000000, size = 65536, cell_size = 1},
},
connection_images = {
{
chip_name = "MY_CHIP", package = "LQFP", pin_count = 48,
connections = {
{pin = 34, mcu_pin = "PA13/SWDIO", prog_pin = "SWDIO"},
-- …
},
},
},
})

mp.target_builder.export_json("targets.json", "Vendor", "Family",
"ST-Link", {t})
mp.target_builder.add_to_family("Family", t) -- add to running app