blob: 763d570414ce6808c80d4327e02cbc73e09c3826 [file] [log] [blame]
-- Copyright Microsoft and CHERIoT Contributors.
-- SPDX-License-Identifier: MIT
set_project("CHERIoT interrupt-latency benchmark");
sdkdir = "../../sdk"
includes(sdkdir)
set_toolchains("cheriot-clang")
-- Support libraries
includes(path.join(sdkdir, "lib/freestanding"),
path.join(sdkdir, "lib/atomic"),
path.join(sdkdir, "lib/crt"))
option("board")
set_default("sail")
debugOption("interrupt_bench");
compartment("interrupt_bench")
add_deps("crt", "freestanding", "stdio", "debug")
-- Allow allocating an effectively unbounded amount of memory (more than exists)
add_rules("cheriot.component-debug")
add_defines("BOARD=" .. tostring(get_config("board")))
add_files("interrupt_bench.cc")
-- Firmware image for the example.
firmware("interrupt-benchmark")
add_deps("interrupt_bench")
on_load(function(target)
target:values_set("board", "$(board)")
target:values_set("threads", {
{
compartment = "interrupt_bench",
priority = 2,
entry_point = "entry_high_priority",
stack_size = 0x1000,
trusted_stack_frames = 4
},
{
compartment = "interrupt_bench",
priority = 2,
entry_point = "entry_high_priority",
stack_size = 0x800,
trusted_stack_frames = 4
},
{
compartment = "interrupt_bench",
priority = 2,
entry_point = "entry_high_priority",
stack_size = 0x400,
trusted_stack_frames = 4
},
{
compartment = "interrupt_bench",
priority = 2,
entry_point = "entry_high_priority",
stack_size = 0x200,
trusted_stack_frames = 4
},
{
compartment = "interrupt_bench",
priority = 1,
entry_point = "entry_low_priority",
stack_size = 0x100,
trusted_stack_frames = 4
},
}, {expand = false})
end)