ARM
Posts
173 postsarm instruction(명령어) - strleb
strleb란 명령어를 본 적이 있나요? 전 잘 몰라서요, 이 명령어가 어떻게 동작하는지 테스트를 해봤거든요.그 내용을 정리해서 업데이트할께요. 제가 만난 명령어는 아래와 같거든요.cmp r3, #2 @ 1 //<<--[1]strleb r2, [r0], #1 @ 1 해석을 하면 아래와 같아요."R3이 0x2보다 같거나 작을 경우[1], r2의 하위 2바이트를 r0가 가리키는 주소에 있는 값에 저장한 후 r2를 1만큼 증가시킴" "strltb" 명령어는 아래 단어를 줄인 것 같은데요.Str(Store)|le(Signed less than OR equal) | b(Byte) 이 내용이 머리에 잘 안 들어와서 실제 Trace32로 이 명
ARM64(Aarch64) - 함수 호출시 Stack Push(스택 푸쉬) 규약
아래와 같은 콜 스택에서 유저 공간에서 돌던 레지스터 Stack Push와 Exception 발생 시 Stack Push에 대해서 살펴봤어요. 이제는 평상시 함수 호출 시 어떻게 Stack Push를 하는 지 점검하려고 해요. 자 계속 그 동안 다뤄왔던 아래 "rild"란 프로세스의 콜스택에서 msm_ipc_router_sendmsg()-> msm_ipc_router_send_to() 으로 함수가 호출된 후 스택 푸쉬가 어떻게 수행되는 지 점검해볼께요.-000|do_mem_abort()-001|el1_da(asm) -->|exception-002|ch_pop_remote_rx_intent()-003|glink_tx_common()-004|glink_txv()-005|ipc_router_glink
ARM64- 스택 푸쉬(Stack Push) Userspace -> Kernel Space
유저 스페이스에서 커널 스페이스로 전환하려면 시스템 콜을 호출해야 한다 것은 마르고 닳도록 들었죠?이번에는 ARM64 Architecture에서 EL0 ->EL1로 변환될 시, Stack을 어떻게 Push하는 지 살펴볼께요. "rild"란 프로세스의 콜스택을 예를 들어 볼 께요. 잘 보면, 유저 공간에서 sendto란 시스템 콜을 호출했다는 걸 알 수 있네요.-000|do_mem_abort()-001|el1_da(asm) -->|exception-002|ch_pop_remote_rx_intent()-003|glink_tx_common()-004|glink_txv()-005|ipc_router_glink_xprt_write()-006|msm_ipc_router_write_pkt(inline)-00
[Linux][Kernel][ARM] char buf[32]; vs char buf[32]={0};
얼마 전에 아래 패치를 봤어요. 이게 뭐지? 잘 이해가 안 가더라구요.배열을 초기화하는 것 같기도 한데.diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c index f040026..11f56a8 100644 --- a/drivers/usb/dwc3/debugfs.c +++ b/drivers/usb/dwc3/debugfs.c @@ -402,7 +402,7 @@ static ssize_t dwc3_mode_write(struct file *file, struct dwc3 *dwc = s->private; unsigned long flags; u32



