옵션 |
|
안녕하세요. 소포트웨어를 잘 모르는 하드웨어 설계자 입니다.
현재 OS없는 환경에서 MCU(자작 risc-v 32IM)를 구동합니다.
Assembly code를 compile하여 구동하면 잘 동작하지만,
C code를 compile하여 구동하면 stack pointer 때문에 오동작 됩니다.
C code를 compile하면 항상 초기에 stack pointer 동작을 합니다.
그러나 초기 stack pointer 값은(sp register) ZERO로 시작입니다. (reset value)
해당 동작으로 인해, instruction 영역 밖으로 점프하는 오동작 현상이 발생합니다.
초기 stack pointer 값을 설정하는 방법이 있을까요?
compiler는 gcc(github toolchain)을 사용하고 있습니다.
감사합니다.