크로스 툴체인 설치

빌드는 x86 pc로 하는데 구동해야하는 타겟이 arm일 경우에는 arm으로 컴파일 할 수 있게 환경을 구성해야한다. 여기서는 beaglebone black을 사용할 것이므로 linaro의 armv7 컴파일러를 설치할 것이다. 다운로는 링크는 아래와 같다. https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/ 컴파일러의 이름은 arm-linux-gnueabihf이다. 리눅스 환경에서 컴파일 할 것이므로 tar파일을 다운받는다. 크로스 컴파일러를 다운받고 컴파일러/bin 폴더를 경로로 지정해준다. 이 코드를 매번 실행하기는 귀찮으니 Ubuntu를 기준으로 위와 …

크로스 툴체인 설치 더 보기 »

U-boot 컴파일하기

크로스 컴파일러 구성이 완료되었다면, U-BOOT을 컴파일해보자. 이전에 빌드한 파일을 삭제하고 싶다면 distclean이 필요하다 따라서 U-Boot 경로로 이동한 뒤 아래와 같은 명령어를 터미널에서 실행한다. 기본적인 보드 설정을 하고 싶으면 아래와 같은 명령어를 사용한다. 나는 비글 본 블랙을 사용할 것이므로 아래와 같은 명령어를 사용하지만, 다른 보드 파일 빌드가 필요하다면 다르게 설정할 필요가 있다. 먼저 config 폴더에서 사용할 …

U-boot 컴파일하기 더 보기 »

BeagleBone 리눅스 빌드하기

비글본블랙 리눅스 파일은 아래와 같은 링크에 있다. https://github.com/beagleboard/linux 이것도 U-boot과 비슷하다 먼저 보드 설정을 먼저 해준다. 만약에 없다면 config 폴더로 이동해서 디렉토리를 찾아본다. .config 파일이 생성되었다면 menuconfig로 세세한 설정들을 만져준다. 위에서 보이는 것처럼 M으로 되어있는것은 모듈이다. *로 되어 있으면 built-in인데, 모듈로 할 것인지 built-in으로 할 것인지는 알아서 선택하면 된다. 단 built-in으로 모든것을 다 때려박아버리면 커널이미지의 …

BeagleBone 리눅스 빌드하기 더 보기 »

Busybox 사용해보기

Busybox는 하나의 바이너리 파일로 이뤄져 있고, configuration tool을 이용해서 내가 필요로 하는 명령어를 선택할 수 있다. 이 것을 사용하면 제한되어있는 임베디드 시스템의 리소스를 낭비하지 않을 수 있다. busybox는 아래의 링크에서 다운받을 수 있다. https://busybox.net/downloads/ tar파일을 압축해제 한다음 경로로 들어가서 기본 설정 파일을 생성한다 강의에서 이야기하는것처럼 static binary로 설정했다.(나중에 다이내믹으로 수정) static이면 파일 사이즈가 증가한다. 그리고 …

Busybox 사용해보기 더 보기 »

NFS 프로토콜 사용해보기

Root File System을 Host PC 디렉토리로 지정해서 사용하는 방법을 서술한다. 기존에 있던 uEnv.txt파일을 수정해서 NFS를 사용할 수 있게 수정한다. 바꾸기 전 : 바꾸고 난 뒤 loadaddr, fdtaddr 등은 기본 설정 값이 있으므로 생략해도 괜찮다. host pc에서는 /srv/nfs/bbb를 rootpath로 사용하고 absolutepath는 tftpboot 폴더로 지정해 두었다. uimage와 dtb파일은 /var/lib/tftpboot/ 폴더에 넣어두고 빌드한 RFS파일은 /srv/nfs/bbb 폴더에 넣어둔다. 먼저 …

NFS 프로토콜 사용해보기 더 보기 »

buildroot 사용해보기

buildroot는 rootfs를 생성하는 도구 같은 느낌이다. 근데 짱 편리한게 리눅스 커널, busybox, uboot 등 필요한건 다 알아서 다운받고 북치고 장구치고 하는 놈이다. https://buildroot.org/ 다운로드는 위에서 다운받을 수 있다. 다운받고 기본 설정을 할 수 있는데 config 폴더에서 찾으면 있다. 그래서 아래와 같은 코드로 기초 설정을 할 수 있다. 그리고 난 다음에 menuconfig로 들아가서 잡다한 설정을 다할 …

buildroot 사용해보기 더 보기 »

비글본 블랙 TFTP 부팅하기

이 프로젝트는 비글본 블랙 보드를 TFTP 부팅하는 방법을 서술하였다. 보드랑 PC랑 인터넷 케이블로 연결하고, TFTP로 부팅하는 과정을 서술한다. PC는 192.168.7.1로 임의로 설정하고 보드는 192.168.7.2로 임의로 설정한다. 맨처음으로 할 일은 SD카드로 부팅을 하고, SD카드에서 UBOOT까지 부팅을 한다. 그 이후, uEnv로 환경 변수를 설정하고 커널 이미지랑 DTB(Device Tree Blob)파일등을 업로드 한다. 먼저 서버 PC에서 tftp를 설치해야한다. 아래의 …

비글본 블랙 TFTP 부팅하기 더 보기 »

STM32F4 LL I2C 레지스터 및 코드 작성하기

STM32F4 LL I2C 설정 및 코드 작성 프로젝트입니다. STM32F4 LL I2C 설정 및 ADXL345 레지스터 살펴보기 STM32F4 LL I2C 레지스터 및 코드 작성하기 STM32F4 LL I2C INTRO LL드라이버를 작성해보는 사람이라면 모두 알겠지만, 레퍼런스 메뉴얼을 참고하지 않고서는 코드를 작성할 수 없다. 더군다나 아트메가로 먼저 i2c를 제어해봤지만, 이건 그것보다 더 복잡하다고 해야하나, 골때리는 것들이 있다. 레퍼런스 메뉴얼 …

STM32F4 LL I2C 레지스터 및 코드 작성하기 더 보기 »

ADXL345 I2C 설정 및 레지스터 살펴보기

ADXL345 I2C 설정 및 코드 작성 프로젝트입니다. STM32F4 LL I2C 설정 및 ADXL345 레지스터 살펴보기 STM32F4 LL I2C 레지스터 및 코드 작성하기 ADXL345 I2C INTRO 오늘은 내용이 좀 복잡할 듯 하다. I2C에 대한 설명을 먼저 해야할 듯한데, 사용하는 센서가 예제로 들어가야 이해가 좀 더 될 듯하다. 그래서 이번에는 ADXL345 가속도 센서의 데이터시트를 예로 들어 설명 …

ADXL345 I2C 설정 및 레지스터 살펴보기 더 보기 »

STM32F4 ADC LL 드라이버 코드 작성하기

STM32F4 ADC LL 드라이버 설정 및 초기설정 포스팅 STM32F4 ADC LL 드라이버 초기설정하기 STM32F4 ADC LL 드라이버 코드 작성하기 자, 이제 코드를 작성해보자. 아니지. 코드를 작성하기 전에 레지스터부터 확인을 해봐야한다. 왜냐하면 LL 드라이버는 직접 레지스터를 제어하기 때문에 내부 구조를 파악해야하기 때문이다. 레퍼런스 메뉴얼 분석 레퍼런스 메뉴얼에는 위처럼 서술해 놨다. 레귤러 채널로 ADC를 사용한다면 먼저 ADC_CR2레지스터에 …

STM32F4 ADC LL 드라이버 코드 작성하기 더 보기 »