빅 엔디언, 리틀 엔디언
·
ARM arch/Cortex-M
엔디언 (Endian)컴퓨터의 메모리와 같은 1차원의 공간에 다 바이트 이상의 데이터를 저장할 때, 바이트 순서를 정하는 방식메모리 ↔ 레지스터 간의 읽기/쓰기 시 바이트 순서에 영향을 받는다.빅 엔디언 (Big-Endian)MSB를 먼저 저장리틀 엔디언 (Little-Endian)LSB를 먼저 저장메모리의 시작 주소에 있는 데이터에서 레지스터의 MSB부터 채워진다. 메모리의 시작 주소에 있는 데이터에서 레지스터의 LSB부터 채워진다.Cortext-M기본적으로 Little-Endian을 채택대부분의 MCU 및 저전력 임베디드 시스템에서의 성능 및 호환성 확보 목적
AAPCS
·
ARM arch/Cortex-M
procedure call standard for ARM instruction어셈블리 함수 C호출 예제ARM 어셈블리에서는 함수 호출과 반환이 AAPCS (ARM Architecture Procedure Call Standard)에 따라 이루어짐.아래는 2개의 int 값을 더해서 반환하는 어셈블리 함수를 C에서 호출하는 예제 어셈블리 함수 (libs.s) .global FIRST_ASM_FUNCFIRST_ASM_FUNC: @ 함수 시작 (전역 레이블) add r0, r1 @ r0 = r0 + r1 (r0: 첫 번째 인자, r1: 두 번째 인자) bx lr @ 복귀 (lr에 저장된 주소로 분기), r0 값이 반환됨C 코드에..
Thumb2 명령어 / 레지스터 / 핸들러 모드, 쓰레드 모드
·
ARM arch/Cortex-M
기존의 명령어 셋Thumb 명령어셋ARM 명령어셋Thumb 명령어16비트 고정 길이 명령어코드 크기 줄이고, 메모리 절약ARM 명령어32비트 고정 길이 명령어고성능, 풍부한 연산기능 제공Thumb과 ARM 명령어셋 비교 메모리 대역폭이 32bit일때한번에 32비트 가져올 수 있음 → ARM에유리Thumb명령어는 16비트지만, decode는 결국 fetch당 한번만 수행 → 이득없음메모리 대역폭이 16bit일때ARM명령어는 2번 fetch필요 → 비효율Thumb명령어는 1번fetch로 충분 → 효율적그래서 Thumb2 명령어 사용Thumb와 ARM 명령어를 번갈아서 사용하면, overhead가 생긴다.→ 성능 저하 발생 따라서, Thumb와 ARM을 혼합한 Thumb2를 사용하는데,모드 전환이 필요없기 때..
RealtimeMemTracker - 개발 재개..
·
C프로그래밍/MemoryTracker
한동안 학업과 캡스톤 프로젝트 등 여러 일이 겹치면서 개발을 잠깐 멈췄었다.특히 이번 학기에는 전공 수업에 팀 프로젝트까지 겹쳐서, 개인 프로젝트까지 병행하긴 쉽지 않았던 것 같다. 이제 종강을 했으니, 다시 조금씩 개발을 재개해보려 한다.근데 오랜만에 이전에 작성했던 소스코드를 열어보니까전체적인 코드 구조가 머릿속에 잘 들어오질 않더라.그래서 본격적으로 개발을 다시 시작하기 전에,일단 지금까지 작성해놓은 코드랑 파일 구조부터 정리하고 넘어가려고 한다.현재 프로젝트 이름은 RealtimeMemTracker이고,구조는 아래처럼 단순하게 되어있다:RealtimeMemTracker||---header/| |---memory_tracker.h| |---process_monitor.h| |---p..
졸업작품 마무리
·
Qualcomm 기업과제
졸작을 끝낸지 1주일이 넘었는데, 여러가지 문제로 정신이없어후기를 이제야 올린다. 지난 2달 동안 준비한 졸업작품 전시회를 무사히 마쳤다.비록 수상은 하지 못해 아쉬움이 남지만, 그동안의 노력이 의미 없진 않았다.이번 프로젝트는 AI 모델을 활용한 차량 과속 탐지 및 알림 제공 서비스였다.주제는 퀄컴(QUALCOMM) 측에서 직접 정해줬다. https://github.com/Qualcom-Capstone Qualcom-CapstoneQualcom-Capstone has 5 repositories available. Follow their code on GitHub.github.comhttps://www.youtube.com/watch?v=FDzbjOeika8 내가 담당한 파트는 YOLO 기반 객..
🔧 속도 측정 알고리즘 개선
·
Qualcomm 기업과제
속도 측정 알고리즘 개선기존에는 객체의 프레임당 중심 좌표 이동 거리를 이용해 속도를 계산했지만,이 방식은 실제 차량의 속도를 정확히 반영하지 못했다.카메라의 위치, 각도, 해상도, 거리 왜곡 등 다양한 요소가 영향을 미치기 때문에,단순한 픽셀 거리 기반 계산만으로는 신뢰할 수 있는 속도 추정이 어려웠다.새로운 방식: 선 통과 기반 시간 측정이에 따라, 속도 측정 방식을 다음과 같이 변경했다:화면에 가상의 두 선을 설정하고, 객체(차량)가첫 번째 선을 통과한 시점두 번째 선을 통과한 시점이 두 시점 사이의 시간 차를 측정하여 속도를 계산하는 방식이다.이를 통해 실제 움직인 거리를 고정된 기준으로 환산할 수 있게 되었고,특정 픽셀 간 거리를 미터 단위로 환산할 수 있다면 훨씬 정확한 속도 계산이 가능해졌다..