Commit 360210ff by zhangyukun223

change am

parent 976bbc0c
# .section entry, "ax"
# .globl _start
# .type _start, @function
# _start:
# mv s0, zero
# la sp, _stack_pointer
# call _trm_init
.section entry, "ax"
.global _start
.globl _start
.type _start, @function
_start:
mv s0, zero
# 初始化栈指针
la sp, _stack_pointer
call _trm_init
# .section entry, "ax"
# .global _start
# .type _start, @function
# _start:
# mv s0, zero
# # 初始化栈指针
# la sp, _stack_pointer
# 调用 bootloader_copy_data()
call bootloader_copy_data
# # 调用 bootloader_copy_data()
# call bootloader_copy_data
# 调用 clear_bss()
call clear_bss
# # 调用 clear_bss()
# call clear_bss
# 调用主程序
call _trm_init
# # 调用主程序
# call _trm_init
......@@ -31,27 +31,27 @@ void _trm_init() {
halt(ret);
}
extern char _data_lma[];
extern char _data_lma_end[];
extern char _data_start[];
extern char _data_end[];
void bootloader_copy_data() {
char *src = _data_lma;
char *dst = _data_start;
while (src < _data_lma_end) {
*dst++ = *src++;
}
}
extern char _bss_start[];
extern char _bss_end[];
void clear_bss() {
volatile char *dst = _bss_start;
while (dst < _bss_end) {
*dst++ = 0;
}
}
// extern char _data_lma[];
// extern char _data_lma_end[];
// extern char _data_start[];
// extern char _data_end[];
// void bootloader_copy_data() {
// char *src = _data_lma;
// char *dst = _data_start;
// while (src < _data_lma_end) {
// *dst++ = *src++;
// }
// }
// extern char _bss_start[];
// extern char _bss_end[];
// void clear_bss() {
// volatile char *dst = _bss_start;
// while (dst < _bss_end) {
// *dst++ = 0;
// }
// }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment