Skip to content

Commit 994dd06

Browse files
committed
loader: cleanups
1 parent 8e81a50 commit 994dd06

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

loader/main.c

+12-7
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ LOG_MODULE_REGISTER(app);
2020
#include <zephyr/drivers/uart.h>
2121
#include <zephyr/usb/usb_device.h>
2222

23+
#define HEADER_LEN 16
24+
2325
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), cdc_acm)
2426
const struct device *const usb_dev = DEVICE_DT_GET(DT_PHANDLE_BY_IDX(DT_PATH(zephyr_user), cdc_acm, 0));
2527
#endif
@@ -49,9 +51,10 @@ static int loader(const struct shell *sh)
4951
return rc;
5052
}
5153

52-
uint32_t offset = DT_REG_ADDR(DT_GPARENT(DT_NODELABEL(user_sketch))) + DT_REG_ADDR(DT_NODELABEL(user_sketch));
54+
uintptr_t base_addr = DT_REG_ADDR(DT_GPARENT(DT_NODELABEL(user_sketch))) +
55+
DT_REG_ADDR(DT_NODELABEL(user_sketch));
5356

54-
char header[16];
57+
char header[HEADER_LEN];
5558
rc = flash_area_read(fa, 0, header, sizeof(header));
5659
if (rc) {
5760
printk("Failed to read header, rc %d\n", rc);
@@ -89,10 +92,9 @@ static int loader(const struct shell *sh)
8992
}
9093
#endif
9194

92-
int header_len = 16;
93-
9495
uint8_t linked = endptr[2];
9596
if (linked) {
97+
#ifdef CONFIG_BOARD_ARDUINO_PORTENTA_C33
9698
#if CONFIG_MPU
9799
barrier_dmem_fence_full();
98100
#endif
@@ -102,8 +104,11 @@ static int loader(const struct shell *sh)
102104
#if CONFIG_ICACHE
103105
barrier_isync_fence_full();
104106
#endif
107+
#endif
108+
105109
extern struct k_heap llext_heap;
106-
void (*entry_point)(struct k_heap * heap, size_t heap_size) = (void (*)(struct k_heap * stack, size_t stack_size))(offset+header_len+1);
110+
typedef void (*entry_point_t)(struct k_heap *heap, size_t heap_size);
111+
entry_point_t entry_point = (entry_point_t)(base_addr + HEADER_LEN + 1);
107112
entry_point(&llext_heap, llext_heap.heap.init_bytes);
108113
// should never reach here
109114
for (;;) {
@@ -125,7 +130,7 @@ static int loader(const struct shell *sh)
125130
}
126131
#else
127132
// Assuming the sketch is stored in the same flash device as the loader
128-
uint8_t* sketch_buf = (uint8_t*)(offset+header_len);
133+
uint8_t* sketch_buf = (uint8_t*)(base_addr + HEADER_LEN);
129134
#endif
130135

131136
#ifdef CONFIG_LLEXT
@@ -219,4 +224,4 @@ int main(void)
219224
{
220225
loader(NULL);
221226
return 0;
222-
}
227+
}

0 commit comments

Comments
 (0)