Skip to content

Commit eb4620a

Browse files
ArcaneNibbledlech
authored andcommitted
pbio/drv/rproc/rproc_ev3.c: Rename PRU firmware symbols
These symbols are now namespaced for the rproc driver.
1 parent 8fa9022 commit eb4620a

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

lib/pbio/drv/rproc/rproc_ev3.c

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,11 @@ void pbdrv_rproc_init(void) {
2929

3030
// PRU0 initialization
3131

32-
extern uint8_t _pru0_start;
33-
extern uint8_t _pru0_end;
34-
uint32_t fw_size = &_pru0_end - &_pru0_start;
35-
uint8_t *fw_data = &_pru0_start;
32+
// These symbols are defined in the linker script (platform.ld)
33+
extern uint8_t pbdrv_rproc_ev3_pru0_fw_start;
34+
extern uint8_t pbdrv_rproc_ev3_pru0_fw_end;
35+
uint32_t fw_size = &pbdrv_rproc_ev3_pru0_fw_end - &pbdrv_rproc_ev3_pru0_fw_start;
36+
uint8_t *fw_data = &pbdrv_rproc_ev3_pru0_fw_start;
3637
pbdrv_uart_ev3_pru_load_firmware(fw_data, fw_size);
3738

3839
// PRU1 initialization
@@ -47,12 +48,13 @@ void pbdrv_rproc_init(void) {
4748
memset((void *)&pbdrv_rproc_ev3_pru1_shared_ram, 0, sizeof(pbdrv_rproc_ev3_pru1_shared_ram));
4849

4950
// Enable PRU1 and load its firmware
50-
extern uint8_t _pru1_start;
51-
extern uint8_t _pru1_end;
51+
// These symbols are defined in the linker script (platform.ld)
52+
extern uint8_t pbdrv_rproc_ev3_pru1_fw_start;
53+
extern uint8_t pbdrv_rproc_ev3_pru1_fw_end;
5254
PRUSSDRVPruDisable(1);
5355
PRUSSDRVPruReset(1);
54-
unsigned int *fw_start = (unsigned int *)&_pru1_start;
55-
uint32_t fw_sz = &_pru1_end - &_pru1_start;
56+
unsigned int *fw_start = (unsigned int *)&pbdrv_rproc_ev3_pru1_fw_start;
57+
uint32_t fw_sz = &pbdrv_rproc_ev3_pru1_fw_end - &pbdrv_rproc_ev3_pru1_fw_start;
5658
PRUSSDRVPruWriteMemory(PRUSS0_PRU1_IRAM, 0, fw_start, fw_sz);
5759
// Set constant table C30 to point to shared memory
5860
PRUSSDRVPruSetCTable(1, 30, (((uint32_t)&pbdrv_rproc_ev3_pru1_shared_ram) >> 8) & 0xffff);

lib/pbio/platform/ev3/platform.ld

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@ SECTIONS
4343
.firmware :
4444
{
4545
. = ALIGN(4);
46-
_pru0_start = .;
46+
pbdrv_rproc_ev3_pru0_fw_start = .;
4747
KEEP(*(.pru0));
4848
. = ALIGN(4);
49-
_pru0_end = .;
50-
_pru1_start = .;
49+
pbdrv_rproc_ev3_pru0_fw_end = .;
50+
pbdrv_rproc_ev3_pru1_fw_start = .;
5151
KEEP(*(.pru1));
5252
. = ALIGN(4);
53-
_pru1_end = .;
53+
pbdrv_rproc_ev3_pru1_fw_end = .;
5454
} >DDR
5555

5656
.data :

0 commit comments

Comments
 (0)