Merge pull request #4019 from bj-wanghz/dev
fix long call linker error with 'jal', 'j' or conditional branch instruction in .S files for k210
This commit is contained in:
commit
a472656ee0
|
@ -48,7 +48,7 @@ rt_hw_context_switch_to:
|
||||||
|
|
||||||
#ifdef RT_USING_SMP
|
#ifdef RT_USING_SMP
|
||||||
mv a0, a1
|
mv a0, a1
|
||||||
jal rt_cpus_lock_status_restore
|
call rt_cpus_lock_status_restore
|
||||||
#endif
|
#endif
|
||||||
LOAD a0, 2 * REGBYTES(sp)
|
LOAD a0, 2 * REGBYTES(sp)
|
||||||
csrw mstatus, a0
|
csrw mstatus, a0
|
||||||
|
@ -161,7 +161,7 @@ save_mpie:
|
||||||
|
|
||||||
#ifdef RT_USING_SMP
|
#ifdef RT_USING_SMP
|
||||||
mv a0, a2
|
mv a0, a2
|
||||||
jal rt_cpus_lock_status_restore
|
call rt_cpus_lock_status_restore
|
||||||
#endif /*RT_USING_SMP*/
|
#endif /*RT_USING_SMP*/
|
||||||
|
|
||||||
j rt_hw_context_switch_exit
|
j rt_hw_context_switch_exit
|
||||||
|
|
|
@ -119,7 +119,7 @@ trap_entry:
|
||||||
mv sp, s0
|
mv sp, s0
|
||||||
mv a0, s0
|
mv a0, s0
|
||||||
call rt_scheduler_do_irq_switch
|
call rt_scheduler_do_irq_switch
|
||||||
j rt_hw_context_switch_exit
|
tail rt_hw_context_switch_exit
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
@ -143,4 +143,4 @@ trap_entry:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
spurious_interrupt:
|
spurious_interrupt:
|
||||||
j rt_hw_context_switch_exit
|
tail rt_hw_context_switch_exit
|
||||||
|
|
|
@ -116,18 +116,21 @@ _start:
|
||||||
|
|
||||||
/* other cpu core, jump to cpu entry directly */
|
/* other cpu core, jump to cpu entry directly */
|
||||||
bnez a0, secondary_cpu_entry
|
bnez a0, secondary_cpu_entry
|
||||||
j primary_cpu_entry
|
tail primary_cpu_entry
|
||||||
|
|
||||||
secondary_cpu_entry:
|
secondary_cpu_entry:
|
||||||
#ifdef RT_USING_SMP
|
#ifdef RT_USING_SMP
|
||||||
la a0, secondary_boot_flag
|
la a0, secondary_boot_flag
|
||||||
ld a0, 0(a0)
|
ld a0, 0(a0)
|
||||||
li a1, 0xa55a
|
li a1, 0xa55a
|
||||||
beq a0, a1, secondary_cpu_c_start
|
beq a0, a1, 1f
|
||||||
#endif
|
#endif
|
||||||
j secondary_cpu_entry
|
j secondary_cpu_entry
|
||||||
|
|
||||||
#ifdef RT_USING_SMP
|
#ifdef RT_USING_SMP
|
||||||
|
1:
|
||||||
|
tail secondary_cpu_c_start
|
||||||
|
|
||||||
.data
|
.data
|
||||||
.global secondary_boot_flag
|
.global secondary_boot_flag
|
||||||
.align 3
|
.align 3
|
||||||
|
|
Loading…
Reference in New Issue