rt-thread/bsp/bluetrum/libraries/hal_libraries/bmsis/source/startup.S

93 lines
1.9 KiB
ArmAsm
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Copyright (c) 2020-2020, BLUETRUM Development Team
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "ab32vg1.h"
.global _start
.section .reset, "ax"
_start:
//load comm
la a0, __comm_vma
la a1, __comm_lma
la a2, __comm_size
/* memcpy start */
//32 BYTEcopy
mv t0, a0 //dst
srli t1, a2, 5 //32
slli t1, t1, 5
add t1, a0, t1 //t1
_memcpy_loop1: //8 WORDS every cycle
lw a2, 0(a1)
lw a3, 4(a1)
lw a4, 8(a1)
lw a5, 12(a1)
sw a2, 0(a0)
sw a3, 4(a0)
sw a4, 8(a0)
sw a5, 12(a0)
lw a2, 16(a1)
lw a3, 20(a1)
lw a4, 24(a1)
lw a5, 28(a1)
sw a2, 16(a0)
sw a3, 20(a0)
sw a4, 24(a0)
sw a5, 28(a0)
addi a0, a0, 32
addi a1, a1, 32
blt a0, t1, _memcpy_loop1
mv a0, t0 //dst
/* memcpy end */
la a0, __irq_stack_start //Stack0x23
li a1, 0x23
la a2, __irq_stack_size
call memset
la ra, __irq_stack
lui a5, 0x1
sw zero, -1920(a5)
sw zero, -1916(a5)
//clear bss
la a0, __bss_start
li a1, 0
la a2, __bss_size
call memset
la a0, __comm_vma
sw a0, PICADR(zero)
call entry
// la ra, __exception
// jr ra
.section .vector, "ax"
// .org 0x10
//__exception:
// li sp, 0x10600 //
// jal exception_isr
// 1: j 1b
// mret
.org 0x40
jal x0, low_prio_irq
mret
.global cpu_irq_comm
.section .com_text.irq
cpu_irq_comm:
la a5, __irq_stack
mv sp, a5
j cpu_irq_comm_do
ret