일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- yocto
- BSP
- 코멘토
- ARM 아키텍쳐: 메모리 모델과 배리어
- 코멘토실무PT
- 시스템 소프트웨어 개발을 위한 ARM 아키텍처의 구조와 원리
- Kernel
- arm
- 빌드 시스템
- 인프런
- Arm 아키텍처: 메모리 모델과 배리어
- ARM 아키텍처: 메모리모델과 배리어
- udemy
- 실무PT후기
- Arm 아키텍처: 캐시
- Today
- Total
목록분류 전체보기 (29)
반도체 소프트웨어

mmio라는 것을 단순히 사용만 해봤었지 실제로 하드웨어 레벨에서 구현해보고 소스코드를 고민해본 적은 없었다. 그래서인지 요번 수업을 들으면서 기존에 지녔던 하드웨어, 디바이스 드라이버, 응용 프로그램에 대한 개념이 흔들리면서 강의 내용을 이해하기가 어려웠었다. 그러나 꾸준히 복습하고, 과제를 진행하고, 리드멘토님께 많은 질문을 하여 더 깊은 이해를 얻을 수 있었다. 실무적인 내용을 배울 수 있는 실무PT에 정말 많은 도움을 받고 있다. [2024/01/17(수) 20:00] 작주 복습 MM은 메모리 맵을 의미하고 MMIO는 MM기반 페리페럴을 의미 RISC-V 오픈소스로 IP제공 디바이스트리를 통해서 리눅스 커널 빌드와 독립적으로 하드웨어, 페리페럴들을 다룰수있게 편리하게 다룰수있게되었음 SMP: CP..

강의와 관련된 내용을 다른 책에서 일부 공부해본 경험이 있어 본 실무PT를 편안하게 수강할 수 있을 거라고 생각했었지만, 깊은 기술적 이론도 다뤄서 첫 주차만에 많은 것을 깨닫게 되었다. 또한, 혼자서 과제를 진행할 때 많은 오류가 발생해서 이를 해결하는데 시간을 많이 들었다. 가벼운 인강 정도 수준일 것이라 생각했던 오만함에 반성하게 되었고 앞으로 겸손한 자세로 예습 및 복습을 해야겠다. 결론적으로는 깊고 실무적인 내용을 학습할 수 있어서 대만족이다. [2024/01/10(수) 20:00] SoC 개발이 왜 필요한가: 팹리스 위에서 동작하는 리눅스 실무 ip: 지식재산, 모듈 어차피 h/w와 s/w가 동시에 개발되기에 에뮬레이터를 사용하여 지속적으로 sw를 개발해야함 새로운 장치를 만들면 그에 맞는 디..

사전 개념 BBPATH bitbake의 환경 변수(메타데이터 파일 찾는 환경변수, bitbake 소스 가장 상위 디렉터리라고 보면 됨) 콜론으로 구분된 디렉터리 경로 목록을 갖는다. 레이어의 최상위 디렉터리를 저장한다 Layer 연관된 메타데이터들을 포함하는 저장소(디렉터리) 위 그림에서 mylayer가 하나의 독립된 애플리케이션 정도라고 보면 되고 Classes, conf 등은 기본적으로 필요한 시스템 레벨이라고 보면 될 듯 layered 아키텍처로 구성된다 각 레이어가 다른 레이어에 독립적이다. 높은 유지보수성 앞선 레이어 기능 재정의 및 추가 가능 Bitbake 실행 전 준비 사항 bitbake는 궁극적으로 .bb 레시피 파일을 실행(task를 실행) bitbake가 필요로 하는 최소한의 메타데이터..

openembedded: 임베디드 리눅스 빌드 프레임워크 및 배포판 개발 회사 욕토 프로젝트: 임베디드 공간을 위한 오픈소스 프로젝트 포키 리눅스 기반으로 임베디드 시스템을 위한 독립적인 리눅스 배포판 생성을 가능하게 하는 절차와 도구를 만들어내는 목표를 가진 리눅스 재단 작업 그룹 하드웨어 기본 아키텍처와 독립적인 임베디드 개발을 위한 공통 기반 정의 임베디드 장치용 맞춤형 배포판 빌드를 가능하게 한다. 커스텀 리눅스 배포를 위한 소프트웨어 스택을 구성해주는 도구 및 템플릿의 집합 커스텀 리눅스: 특정 임베디드 시스템에 최적화된 리눅스 배포판 자원 최적화: 메모리, 저장공간, 프로세서 성능 등 특화된 기능 지원 욕토는 서로 다른 물리적인 환경들(cpu 아키텍처)에 대한 커스텀 리눅스 구성을 쉽게 할 수..

조윤래 강사님의 "Yocto(욕토), 쉽게 이해하고 깊게 다루기" 강의를 Udemy에서 들은 내용을 정리한 블로그 카테고리입니다. http://aladin.kr/p/b4Ddg https://www.udemy.com/course/yocto-ae/

단순히 VCC, GND, DATA PIN 만 있어서 쉬울줄 알았던 PIR센서 디바이스 드라이버 개발이 그렇지 않았다. 맨처음에 폴링방식으로 구현했는데 값이 변하지 않아서 한참을 고민했었다. 결론적으로는 다음과 같이 원인을 조사해보면서 문제를 해결했다. 1. 전원 공급문제: 멀티테스터 확인 결과, 라즈베리파이 5v출력핀 이상 없음 2. GPIO핀 문제: GPIO핀을 변경해도 변화 없음 3. 데이터 값 읽기 방식: 폴링방식에서 인터럽트 방식으로 소스코드 수정(해결) #include #include #include #include #define GPIO_SWITCH_IN 6 int gpio_irq; static irqreturn_t gpio_interrupt_handler(int irq, void *data)..

아무래도 다음과 같은 잉여 핀을 GPIO 용도로 셋팅해야하는 것으로 보임(초반에 이상한 핀을 사용했더니 오류 발생) LED 점멸 영상 with GPIO 태스크 생성해서 PG2 핀을 사용한 빨강색 LED 제어 소스코드 /* FreeRTOS.org includes. */ #include "main.h" #include "cmsis_os.h" #include /* MACRO Variable*/ #define TASK_MAIN_PRIO20 /* TASKS Implementation*/ static void TaskMain(void const *params); /* Global Variable*/ TaskHandle_t xHandleMain; void USER_TASK(void) { xTaskCreate((Tas..

개요 함수 호출은 ARM 코어 도움을 받아야 가능 BL 이후 복귀할 주소를 하드웨어적으로 x30(LR)에 업데이트 RET 명령어 실행하면 x30 값이 PC로 업데이트 스택 오버플로우, 스택 CORRUPTION이 발생하면 디버깅시에 스택 콜 스택 조차 제대로 확인하지 못할 수 있다 AAPCS 관련 레지스터 sp 스택포인터 사용중인 프로세스의 스택 위치 저장 익셉션 레벨별로 sp 레지스터 존재 X30: 링크 레지스터 x0-x7: 함수 전달 인자 X0: 함수반환 스택 푸시 명령어 STP(store pair of registers): 베이스 레지스터(피연산자)가 가리키는 값을 기준으로 지정된 레지스터를 주소에 저장 두 개 레지스터를 주소에 저장하는 기본적인 기능 수행 -> 베이스 레지스터가 sp이면 스택에 푸시..

AAPCS(ARM Architecture Procedure Call Standard): 함수 호출을 위한 세부 규칙 calling convention, 함수호출규약 이라고도 부름 CPU관점에서 함수는 서브루틴(독립적으로 실행되는 소프트웨어 모음) 함수 호출 동작은 cpu 아키텍처 도움 받아야 가능(c언어에서 지원하는 기능 X) AAPCS 내용 함수 호출시 레지스터를 어떻게 사용하는지 함수 반환시 return 구문을 통해 값을 어떻게 반환하는지 함수 호출시 스택을 어떻게 사용하는지 AAPCS를 잘알아야하는 이유 실전 프로젝트에서 디버깅을 잘하기위한 기반 지식 모든 코드는 프로세스 스택 공간에서 실행 지역변수는스택공간에 저장 프로그램 근본 동작 원리 파악: CPU동작하는 방식을 이해하기 위한 초석 AAPCS..

인터럽트 컨트롤러 개요 인터럽트를 통합해서 CPU에게 전달하는 모듈 외부 I/O 디바이스는 인터럽트를 통해 CPU와 인터페이싱 외부 I/O장치(센서, 키보드, USB)를 CPU가 다양한 방식으로 제어하는데 이 중 인터럽트가 가장 많이 활용됨 soc, mcu 업체는 제품개발업체가 다양한 외부 디바이스가 인터럽트를 통해 mcu, soc와 통신할 수 있도록 인터럽트 컨트롤러를 구성해 칩을 설계!! 너는 그러한 soc, mcu가 들어간 타겟 보드나 그런 보드와 센서를 통해서 어떤 결과물을 만들어보는게 좋겠다. 아두이노 라즈베리파이 이런거 말고 인터럽트 컨트롤러 기본 구조 여러 I/O 디바이스가 올려준 인터럽트를 받아 IRQ, FIQ로 CPU에 전달하는 역할 수행 설정된 인터럽트의 우선순위를 기준으로 적절한 AR..