summaryrefslogtreecommitdiff
path: root/common_modules/module_manager/utilities/module_binary_to_c_array.c
diff options
context:
space:
mode:
authorFrédéric Desbiens <[email protected]>2026-09-08 10:03:45 -0400
committerGitHub <[email protected]>2026-09-08 10:03:45 -0400
commitb0ec8bfbb964a78e82c71b20bb6f79ef7597df32 (patch)
treea22b0c155386825c18355e2a781af6fc6b82681b /common_modules/module_manager/utilities/module_binary_to_c_array.c
parentd7789f0b1261fe897e2cdc5a525cfa06011dd35f (diff)
Fixed the invalid module data pointers in the absolute module load (#699)
An absolutely located module has its code and its data placed at two independent fixed addresses by the module's linker script. The module preamble carries the code and data sizes but not the data address, so _txm_module_manager_absolute_load() could not determine where the module's data area was. It computed txm_module_instance_data_start from the code size and the preamble size, which yields a size rather than an address, and it set txm_module_instance_module_data_base_address one past the end of the byte pool allocation. Added _txm_module_manager_absolute_load_extended(), which accepts the module's data area address from the caller. Deprecated _txm_module_manager_absolute_load(), which now forwards to the extended service with an unknown data area location and rejects modules that request memory protection, since the memory protection hardware cannot be programmed to cover an unknown data area. Fixes #450 Assisted-by: Copilot (Opus 5) <[email protected]>
Diffstat (limited to 'common_modules/module_manager/utilities/module_binary_to_c_array.c')
0 files changed, 0 insertions, 0 deletions