본문 바로가기

allwinner

(23)
쾌속 부팅 2차 도전 BootChart를 설치하여 "init" 직후에 일어나는 일들을 분석해 보았다. Buildroot 작업 디렉토리에서 make busybox-menuconfig 실행하고 "Init Utilities" 메뉴에서 "bootchartd"를 선택하면 된다. Pinchzoom이라는 Qt 어플리케이션은 init 시작 후 약 2.5초 후에 구동을 시작하는것으로 파악되었다. 그러나 화면이 보일때까지 추가로 2초 정도 더 기다려야 한다. 즉 4.5초 정도의 구동시간이 필요한 것이다. 무엇을 하느라 2.5초씩이나 기다리고 있는것일까? SD 카드 EXT4 파티션 마운팅 시간이 이렇게나 오래걸리나? Qt5와 방대한 과련 라이브러리, 어플리케이션 로딩도 2초 이상 시간이 걸리는 것으로 파악되었다. RNG(Random Number..
쾌속 부팅을 향한 첫 걸음 많은 MCU 펌웨어 개발자들이 임베디드 리눅스 도입을 망설이는 이유가 몇가지 있다. 임베디드 리눅스의 소프트웨어 구조는 복잡하고 어렵다. 툴체인, 커널, 부트로더, 루트파일 시스템 등등 공부할것이 많아 개발하는데 시간이 많이 필요하다. 따라서 전반적인 개발 기간이 길어지고 이에따른 비용이 높아진다는 것에 동의한다. 그런데 화려한 GUI와 함께 유무선 네트웍이 필요하다면, MCU 보다는 리눅스가 동작하는 MPU 기반의 고성능 장치가 필요할 것이다. 임베디드 리눅스를 구성하는 하드웨어가 복잡하고 가격이 높다. CPU는 대부분 BGA 패키지이고, 외부에 DRAM을 추가해 주어야 하고, PMIC도 필요한 경우가 많다. 그러나 800x480 이상의 TFT LCD를 연결하고, 부드럽게 동작하는 GUI를 구현하고 유..
USB 무선랜 드라이버 구동 Mediatek사의 RT5370칩셋이 장착된 USB 무선랜 장치(모듈)는 구하기도 쉽고 가격도 매우 저렴하다. 실제 알리익스프레스에서 $2~$3의 초저가에 무료배송으로 구입할 수 있으니 여유있게 몇개 주문해 놓자. 안테나가 내장된 소형 모듈은 보통 아래와 같은 구조로 되어 있다. 원래 Ralink사에서 만든 칩이지만 2011년에 Ralink는 MediaTek 인수되었다. 시시콜콜한 반도체 회사들의 M&A 이야기를 하는 이유는 디바이스 드라이버의 설명이 Ralink 로 되어 있기 때문이다. 이 무선랜 칩이 사용할 디바이스 드리이버의 이름은 RT2X00이다. 무선랜 관련 드라이버는 Built-in으로 설정하면 정상동작하지 않는다. 무선랜 칩셋이 필요로하는 바이너리 펌웨어 파일이 루트파일 시스템에 존재하는데,..
SPI 포트 기능 테스트 Allwinner S3/i3에는 SPI 통신 장치가 포함되어 있으며 출력과 입력 포트에 각각 64바이트의 송수신 FIFO 버퍼가 있다. UART와는 다르게 CLOCK신호에 동기되어 데이터 송수신이 가능하므로 빠르고 신뢰도가 높은 장치간의 통신을 구현할 수 있다. 고속으로 많은 데이터 통신이 필요한 복잡한 센서나 소형 컬러 TFT LCD를 구동하는데 많이 사용된다. SPI 포트는 MOSI(Master Out Slave In) 데이터 출력, MISO(Master In Slave Out) 데이터 입력, MCLK(Master Clock) 클럭 출력이 있다. 추가로 Slave의 Chip-select를 SS(Slave Select) 출력신호가 있다. CLOCK의 위상과 데이터 동기를 상승 시점이냐 하강 시점에 따라..
UART 포트 기능 테스트 비동기통신 (Universal Asynchronous Receiver/Transmitter)은 1960년대 초부터 사용된 징그럽게 오래된 통신 프로토콜이다. 60년이라는 세월이 흘렀지만 아직도 다양한 분야에서 사용된다. Allwinner i3/S3 CPU에는 UART 통신 포트가 3개 있으며, 산업 표준으로 여겨지는 16550 칩과 호환되는 IP로 구성되어 있다. UART0는 시스템 콘솔 포트로 사용되며 CH330N이라는 IC를 통해 USB 인터페이스로 변환되어 개발용 PC에 연결된다. 터미널 콘솔이 필요하지 않다면 u-boot과 boot.cmd를 수정하여 다른 용도로 사용할 수 있지만 시도해보지는 않았다. UART1과 UART2는 각각 RX,TX,CTS,RTS 4개의 신호선을 가지고 있으며, UART0..
Buildroot 테스트 최신 stable version인 buildroot-2019.11 다운로드 후 압축을 푼다. 아래 절차대로 FoxNux용 BSP(Board Support Package)를 만들어 보았다. board/foxnuxone/ 폴더 만들기 board/foxnuxone/boot.cmd 파일 만들기 (u-boot이 자동실행하는 스크립트) setenv bootargs console=ttyS0,115200 panic=5 console=tty0 rootwait root=/dev/mmcblk0p2 earlyprintk rw load mmc 0:1 0x41000000 zImage load mmc 0:1 0x41800000 sun8i-s3-foxnux-one.dtb bootz 0x41000000 - 0x41800000 boar..
ADC 키패드 입력 테스트 Allwinner I3(S3) CPU 내부에 LRADC 입력 장치가 포함되어 있다. Low Resolution Analog to Digital Converter 인지 아니면 Low Rate Analog to Digital Converter인지 명확하지 않다. 나는 Low Resolution으로 부르고 싶지만 Sunxi community에는 후자의 Low Rate 용어를 사용하는 것 같다. 6비트 분해능으로 디지털로 변환된 값의 범위는 0~63까지로 매우 허접하다. 최대 2.0Volt까지 입력이 가능하며 약 30mV의 분해능이다. 4msec의 ADC 변환 시간이 필요하므로 최대 250Hz의 샘플링 주기가 가능하다. 따라서 일반적인 계측용 ADC 입력 장치로 사용하는 것은 의미가 없어보이며, 버튼 몇개를 연..
카메라 입력 테스트 Allwinner S3/i3 CPU에는 parallel과 serial(MIPI-CSI) 2개의 카메라 이미지 입력 포트가 있다. 그런데 현재 메인라인 커널은 MIPI-CSI와 ISP를 지원하지 않으며 추후에 bootlin에서 지원할 가능성은 있다. OV7670이라는 VGA급 저질 카메라를 Parallel로 연결하여 간단한 정지영상 capture를 해보았다. 아래 명령은 640x480 해상도의 YUYV 포맷 이미지로 읽어내어 JPEG 형식의 파일로 저장 한다. fswebcam -S 10 -d /dev/video0 -p YUYV -r 640x480 test22.jpg 저장한 이미지는 fbi라는 프로그램으로 프레임버퍼에 저장한 파일을 디스플레이 하였다. fbi -d /dev/fb0 test22.jpg -a -..