@@ -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 );
0 commit comments