Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
my_ysyx_2025
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhangyukun223_ucas
my_ysyx_2025
Commits
360210ff
Commit
360210ff
authored
Jul 19, 2025
by
zhangyukun223
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
change am
parent
976bbc0c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
38 additions
and
38 deletions
+38
-38
abstract-machine/am/src/riscv/npc/start.S
+16
-16
abstract-machine/am/src/riscv/npc/trm.c
+22
-22
No files found.
abstract-machine/am/src/riscv/npc/start.S
View file @
360210ff
# .section entry, "ax"
# .globl _start
# .type _start, @function
# _start:
# mv s0, zero
# la sp, _stack_pointer
# call _trm_init
.section entry, "ax"
.glob
a
l _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
abstract-machine/am/src/riscv/npc/trm.c
View file @
360210ff
...
...
@@ -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;
//
}
//
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment