주변장치들이 CPU의 개입없이 메모리에 직접 접근하여 읽거나 쓸 수 있도록 하는 기능 - 여기서 주변장치란 : HDD, 그래픽카드, Network카드, 사운드카드 등 CPU는 DMA request를 DMA Controller에 보낸 뒤에 다른 일을 할 여유가 생김. DMAC의 counter가 0이 될 때까지 CPU 개입 없이 I/O 수행 작업이 완료되면 DMAC -> CPU로 단 한 번의 인터럽트만 발생한다. (데이터가 전송되는 동안 CPU는 다른 작업을 수행할 수 있게 되어 효율성 UP) 메모리의 일정 부분이 DMA 전용으로 지정되며 CPU가 데이터 전송에 관여하지 않아도 되므로 성능이 좋아짐 주변장치의 데이터는 Device Controller에 의해 local buffer로 이동했다가 memory에 ..
분류 전체보기
Cross Compile : https://wikidocs.net/3243 $ sudo apt-get install gcc-arm-linux-gnueabihf flex bison make ncurses-dev build-essential $ git clone --depth=1 https://github.com/raspberrypi/linux ### Kernel compile MODULE_DIR=/home/justin/modules/lib/modules BUILD_LOG=/home/justin/rpi_kernel_src/build.log cd linux KERNEL=kernel7 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig make..
Raspberry Pi hardware : https://www.raspberrypi.org/documentation/hardware/raspberrypi/README.md BCM2837* https://ultibo.org/wiki/Unit_BCM2837* BCM2835랑 거의 같음 : BCM2835 ARM Peripherals(PDF) Ethernet driverModel : LAN78xx (참고 : 링크)Code : https://github.com/raspberrypi/linux/blob/rpi-4.14.y/drivers/net/usb/lan78xx.c커널 컴파일 : https://wikidocs.net/3243
안드로이드 스튜디오를 이용해서 프레임워크 소스를 navigation 하고 싶었는데 결국 방법을 찾지 못했다. 굳이 해보려고 고집했던 이유는 이클립스를 완전히 배제하고 안드로이드 프레임워크 개발을 하고 싶었기 때문이다. 이틀 정도 헤매고 나서 다시 이클립스로 돌아왔더니 10분만에 모든 것을 해냈다. 안드로이드 스튜디오와 씨름한 시간이 아깝긴 하지만 그 노력은 나름대로 의미가 있었다고 남기고 싶다 (...응?) 다음은 Android SDK가 설치된 상태에서 Java only 상태의 Eclipse에 안드로이드 소스 분석 환경(Remote debugging도 가능)을 구성하는 방법니다. 1) Run eclipse 2) Help - Install New software - Add - 이름 : ADT / 주소 : ..
안드로이드 새 버전 Nougat를 다뤄보면서 만난 CTS관련 에피소드를 이야기해볼까 한다. CTS(The Compatibility Test Suite)는 안드로이드 장치가 반드시 지켜야하는 규약이나 양식에 대한 테스트케이스(이하 TC) 집합 프로그램이다. 그래서 안드로이드 장치 제조사는 필연적으로 CTS를 통과해야만 한다. 이 역시 AOSP에서 오픈 소스 형태로 운영/개발되고 있지만 TC를 수정하려면 구글 개발자의 리뷰를 반드시 거쳐야 하므로 구글의 강제사항이라고 봐도 무방하다. CTS는 안드로이드가 추구하는 방향의 길잡이 역할을 한다고 생각해도 좋다. 예를 들어, 특정 API를 강제하거나 제한하고 싶은 경우 구글은 그것을 CTS TC로 추가해버리면 그만이다. 안드로이드를 탑재하여 제품을 만들고싶은 사람..