1. 참석 인원
이상철 / 김남일 / 김지성 / 박상수
2. 진행 사항
- spike booting 과정 확인 ( 명령어 5개는 rom code 처럼 보임)
- spike 를 이용하여 명령어 수행 확인
- 스펙리뷰 Chapter 1 완료
- Chisel3 은 다음주에 설치 필요할 때
3. 결정 사항
- 다음 주는 spike에 GDB 연동하기.
- 휴식시간 : 3:00 ~ 3:10 PM
댓글 4
-
김지성
2018.08.18 17:44
-
myskan1
2018.08.19 06:02
조금 더 설명을 덧붙이자면
1. spike 의 첫번째 PC 값은 관찰 결과 0x1000 이었습니다.
2. spike 를 실행 히루 명령어 실행 내용을 보면 첫 5개의 명령어가 항상 실행 됩니다.
2-1. hello.c 코드를 실행 시켜도
2-2. 위에서 테스트해 본 간단한 assemble 코드도...
3. 위의 5개 명령어 이후 PC 값은 0x80000000 가르키게 됩니다.
4. 따라서 다음과 같은 결론에 도출 하였습니다.
4-1. spike는 boot rom 과 같이 5개의 명령어를 default로 포함하고 있다.
4-2. spike가 인식하는 메모리 맵의 구조는 아직 파악이 안되었지만 0x80000000 이 메모리 영역인것 같다.
-
myskan1
2018.08.21 13:54
~/RISCV/rocket-chip/riscv-tools/riscv-isa-sim/riscv/encoding.h 에 위의 내용이 정의 되어 있네요.
#define DEFAULT_RSTVEC 0x00001000
#define CLINT_BASE 0x02000000
#define CLINT_SIZE 0x000c0000
#define EXT_IO_BASE 0x40000000
#define DRAM_BASE 0x80000000
-
김남일
2018.08.18 20:22
.
[처음 코드 위치]
0x80000000
[부트 코드(?) 내용]
auipc t0, 0x0
addi a1, t0, 32
csrr a0, mhartid
lw t0, 24(t0)
jr t0
[boot.lds]
OUTPUT_ARCH( “riscv” )
SECTIONS
{
. = 0x80000000;
.text : { *(.text) }
.data : { *(.data) }
}
[boot.S]
.text
.globl _start
_start:
li x6, 100
li x7, 200
[컴파일 명령어]
riscv32-unknown-elf-as -o boot.o boot.S
riscv32-unknown-elf-ld -T boot.lds -o boot boot.o
[spike 디버깅 모드 실행]
spike -d boot