STM32MP157C-DK2는 우분투 환경에서 개발을 진행합니다.
그래서 Window 10 Hyper-V 가상환경에서 Ubuntu18.04.4를 설치하여 진행합니다.
아래 링크를 참조하여 개발환경 구축을 참고합니다.
* Starter Package https://wiki.st.com/stm32mpu/index.php/STM32MP15_Discovery_kits_-_Starter_Package
* Developer Package https://wiki.st.com/stm32mpu/index.php/STM32MP1_Developer_Package
* STM32 MPU Wiki
|
STM32CubeProgrammer tool 설치
1. (없는 사람만 진행) JAVA JRE 설치
$ sudo apt-get install openjdk-8-jre
2. https://www.st.com/en/development-tools/stm32cubeprog.html에서 STM32CubeProgrammer 다운로드
3. 압축을 풀고 다음을 입력하여 설치
$ ./SetupSTM32CubeProgrammer-2.4.0.linux
4. binary PATH 등록
$ export PATH=<my STM32CubeProgrammer install directory>/bin:$PATH
Developer Package 설치
1. STM32MP1 Developer Package SDK 설치
en.SDK-x86_64-stm32mp1-openstlinux-20-02-19.tar.xz에서 SDK를 다운로드
2. 압축 해제
$ tar xvf en.SDK-x86_64-stm32mp1-openstlinux-20-02-19.tar.xz
3. 파일 권한 변경
$ sudo chmod +x stm32mp1-openstlinux-20-02-19/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-2.6-openstlinux-20-02-19.sh
4. 설치 스크립트 실행
$ ./stm32mp1-openstlinux-20-02-19/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-2.6-openstlinux-20-02-19.sh -d <working directory absolute path>/Developer-Package/SDK
5. SDK 환경 설정 스크립트 - SDK 시작
** SDK 환경 설정 스크립트는 크로스 컴파일 하는 터미널마다 한번씩 실행되어야 합니다.
$ source <SDK installation directory>/environment-setup-cortexa7hf-neon-vfpv4-ostl-linux-gnueabi
위 스크립트가 성공적으로 적용되었으면 아래와 같은 커맨드를 입력하였을 경우 아래 그림처럼 나타난다.
$ echo $ARCH
$ echo $CROSS_COMPILE
$ $CC --version
$ echo $OECORE_SDK_VERSION
Linux Kernel 설치
1. Developer-package 폴더에 Kernel source 다운로드
en.SOURCES-kernel-stm32mp1-openstlinux-20-02-19.tar.xz
2. 압축 해제
$ tar xvf en.SOURCES-kernel-stm32mp1-openstlinux-20-02-19.tar.xz
$ cd stm32mp1-openstlinux-20-02-19/sources/arm-ostl-linux-gnueabi/linux-stm32mp-4.19-r0/
$ tar xvf linux-4.19.94.tar.xz
3. ST 패치 적용
$ cd linux-4.19.94/
$ for p in `ls -1 ../*.patch`; do patch -p1 < $p; done
4. fragment 적용
$ make ARCH=arm multi_v7_defconfig "fragment*.config"
$ for f in `ls -1 ../fragment*.config`; do scripts/kconfig/merge_config.sh -m -r .config $f; done
$ yes '' | make ARCH=arm oldconfig
* 이때 각종 프로그램이 설치되어있지 않다고 메세지가 나타날 수 있다. apt-get install로 설치해주자.
* make가 없다고 메시지가 나타날 수 있다. sudo apt-get install make를 입력하여 설치하자.
* gcc가 없다고 메세지가 나타날 수 있다. sudo apt-get install gcc를 입력하여 설치.
* bison이 없다고 메세지가 나타날 수 있다. sudo apt-get install bison을 입력하여 설치하자.
* flex가 없다고 메세지가 나타날 수 있다. sudo apt-get install flex를 입력하여 설치하자.
5. 커널 이미지 빌드 (10분이상 소요)
$ make ARCH=arm uImage vmlinux dtbs LOADADDR=0xC2000040
* 아래 gcc unrecognized argument와 같은 에러를 만나면 source 커맨드를 다시 진행한다.
$ source <SDK installation directory>/environment-setup-cortexa7hf-neon-vfpv4-ostl-linux-gnueabi
* 아래 openssl/bio.h와 같은 에러를 만나면 libssl-dev를 설치한다.
$ sudo apt-get install libssl-dev
6. 커널 모듈 빌드
$ make ARCH=arm modules
7. output build artifacts 생성
$ mkdir -p $PWD/install_artifact/
$ make ARCH=arm INSTALL_MOD_PATH="$PWD/install_artifact" modules_install
U-Boot 설치
1. Developer-package 폴더에 U-boot source 다운로드
en.SOURCES-u-boot-stm32mp1-openstlinux-20-02-19.tar.xz
2. 압축 해제 및 패치
$ tar xvf en.SOURCES-u-boot-stm32mp1-openstlinux-20-02-19.tar.xz
$ cd stm32mp1-openstlinux-20-02-19/sources/arm-ostl-linux-gnueabi/u-boot-stm32mp-2018.11-r0/
$ tar xvf v2018.11.tar.gz
$ cd u-boot-2018.11
$ for p in `ls -1 ../*.patch`; do patch -p1 < $p; done
3. 컴파일 환경 설정
$ make stm32mp15_basic_defconfig
4. 빌드
$ make DEVICE_TREE=stm32mp157c-dk2 all
'MCU > STM32MP1' 카테고리의 다른 글
[STM32MP1]STM32MP157C-DK2 개봉기 (0) | 2020.05.09 |
---|---|
STM32MP157C-DK2 소개 (1) | 2020.04.20 |