컴퓨터 과학 & 영상처리 관련/임베디드
arm에서 어셈블러로 UART_puts(const char *s) 부르기
꺄뜨르
2012. 5. 4. 23:37
c언어에서 함수 프로토타입
int UART_puts(const char *s);
start.S 파일안의 부르는 부분
ldr r0,_str
bl UART_puts
_str:
.word __str1
__str1:
.string "x = "
결과
x =
그냥 부르면 좋은데 하나 건너 불러야 되나...
mov r0, __str1을 하면 #을 붙여야되고
붙인다 쳐도 "x = " 값이 들어가지 주소값은 안들어감..
먼가 좋은 방법이 있긴 있겠지만 난 잘 모르겠다
함수 프로토타입
int UART_printf(const char *format, ...);
start.S 함수호출부분
ldr r0,_str
bl UART_printf
_str:
.word __str1
__str1:
.string "haha x = %x\n"
결과
haha x = 80e608a4
신기할 따름이네..printf를 어셈블러 안에서 쓸 수 있어서 좋아보이기는 하네
근데 chk하는거랑 머가 다른지 모르겠고..문자열을 편집하기가 힘든 만큼 이거는 거의 쓸일 없을듯