Target
Board
STM32MP157F-EV1(ST)
Host
PC - Ubuntu 22.04
목표
STM32MP1 개발 환경 구축

 


1. Distribution Package 다운로드

git으로 다운로드 받아야 한다.

git 이전에 Repo를 설치 해야 한다.

 

2. Repo 설치

PC $ mkdir ~/bin
PC $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
 

curl이 없다고 나온다. curl을 설치한다.

PC $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
PC $ chmod a+x ~/bin/repo
PC $ PATH=${PATH}:~/bin
 

아래와 같이 진행 된다.

 

3. STM32 Distribution package 다운로드

PC $ mkdir /home/본인PC이름/STM/Distribution-package
 
PC $ mkdir /home/본인PC이름/STM/Distribution-package/openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23
 
PC $ cd /home/본인PC이름/STM/Distribution-package/openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23
 
PC $ repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23
 

git 설정을 하라고 나온다.

git 설정

PC $ git config --global user.name "your_name"
PC $ git config --global user.email "your_email@example.com"
 
PC $ repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23
 

아래는 시간이 오래 걸림

PC $ repo sync
 

 

4. 환경 변수 등록

PC $ DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh
 

위와 같이 입력하면 뭐가 없다고 잔뜩 뜬다.

sudo apt-get install 명령어로 전부 설치한다.

PC $ DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh
 

방향키로 선택하여 설치

 

5. bibake 실행

PC $ bitbake st-image-weston
 

위와 같이 입력하면 python3-distutils를 설치하라고 뜬다. ubuntu22.04는 python이 최소 설치 되있다고 하므로, python3-distutils를 설치한다.

PC $ sudo apt-get install python3-distutils
 

아래는 시간이 오래 걸림(4시간 정도 걸린다)

PC $ bitbake st-image-weston
 

아래 경로에 image 파일 생성

/home/본인PC이름/STM/Distribution-package/openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23/build-openstlinuxweston-stm32mp1/tmp-glibc/deploy/images/stm32mp1

 

아래 경로에 *.tsv 파일 생성

/home/본인PC이름/STM/Distribution-package/openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23/build-openstlinuxweston-stm32mp1/tmp-glibc/deploy/images/stm32mp1/flashlayout_st-image-weston/trusted
 

 

 

 

 

Target
Board
STM32MP157F-EV1(ST)
Host
PC - Ubuntu 22.04
목표
STM32MP1 개발 환경 구축 - Developer Package 설치

STM32MP1 Cortex-A에서 실행되는 소프트웨어를 개발하기 위한 Developer Package 설치 순서는 아래와 같다.

 

0. 추가 패키지 설치

1. SDK 다운로드 및 설치

2. SDK 시작

3. OpenSTLinux BSP packages 다운로드 및 설치

4. Linux Kernel 설치

5. gcnano 설치

6. U-Boot 설치

7. TF-A 설치

8. OP-TEE 설치

9. debug symbol files 확인

 

여기까지 하면 작성일 기준으로 아래의 개발 환경이 만들어 진다.

Target Board
STM32mp157F-EV1
STM32 MPU ecosystem release
v4.1.0
Ubuntu
ubuntu-22.04.1-desktop-amd64
yocto version
OpenEmbedded v4.1 (Kirkstone)

 


아래 링크를 참조하여 진행 한다. hello-world application은 개발 환경 설정 후에 하도록 한다.

0. 추가 패키지 설치

basic cross-compilation(Developer Package를 통해)이나 complex cross-compilation(Distribution Package를 통해)를 하려면 추가 우분투 패키지를 설치하라고 한다.

PC $ sudo apt-get update
 
PC $ sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint xterm bsdmainutils libssl-dev libgmp-dev libmpc-dev lz4 zstd
 
PC $ sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
 
PC $ sudo apt-get install libmpc-dev libgmp-dev
 
PC $ sudo apt-get install build-essential libncurses-dev libyaml-dev libssl-dev 
 

 

지금 부터는 아래 링크를 참조하여 진행한다.

1. SDK 다운로드 및 설치

1-1. 아래 링크에서 'Yocto_SDK(Yocto SDK)' Download

 
en.SDK-x86_64-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar.gz

 

1-2. 다운로드 받은 파일 gzip 풀기

PC $ gzip -d en.SDK-x86_64-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar.gz
 

1-3. tar 풀기

PC $ tar xvf en.SDK-x86_64-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar
 

1-4. 스크립트를 실행 가능하게 하기 위해 권한 변경

PC $ chmod +x st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-4.0.4-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.sh
 

1-5. st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-4.0.4-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.sh

스트립트를 실행 하여 설치

PC $ ./st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-4.0.4-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.sh
 

1-6. 설치 경로는

/home/본인PC이름/STM/Developer-package/SDK

로 지정

Terminal에서 실행하던, X 윈도우에서 실행하던 결과는 동일

1-7. 설치 확인

 

2. SDK 시작

2-1. SDK 환경 설정 스크립트 실행

PC $ source /home/본인PC이름/STM/Developer-package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
 

2-2. 환경 설정 확인

PC $ echo $ARCH
 
PC $ echo $CROSS_COMPILE
 
PC $ $CC --version
 
PC $ echo $OECORE_SDK_VERSION
 

 

3. OpenSTLinux BSP packages 다운로드 및 설치

3-1. 아래 링에서 'STM32MP1Dev(STM32MP1 OpenSTLinux Developer Package)' 다운로드

 
en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar.gz

 

3-2. 다운로드 받은 파일 gzip 풀기

PC $ gzip -d en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar.gz
 

3-3. /home/본인PC이름/STM/Developer-package 설치 경로에다 tar 풀기

PC $ tar xvf en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar
 

 

/home/본인PC이름/STM/Developer-package/stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23/sources/arm-ostl-linux-gnueabi

폴더로 이동

 

4. Linux Kernel 설치

PC $ cd linux-stm32mp-5.15.67-stm32mp-r2-r0/
 
PC $ tar xvf linux-5.15.67.tar.xz
 
PC $ cd linux-5.15.67/
 

 

5. gcnano 설치

PC $ cd gcnano-driver-stm32mp-6.4.9-stm32mp-r2-r0/
 
PC $ tar xvf gcnano-driver-stm32mp-6.4.9-stm32mp-r2-r0.tar.xz
 
PC $ cd gcnano-driver-6.4.9/
 

 

6. U-Boot 설치

PC $ cd u-boot-stm32mp-v2021.10-stm32mp-r2-r0/
 
PC $ tar xvf u-boot-stm32mp-v2021.10-stm32mp-r2-r0.tar.xz
 
PC $ cd u-boot-stm32mp-v2021.10-stm32mp-r2/
 

7. TF-A 설치

PC $ cd tf-a-stm32mp-v2.6-stm32mp-r2-r0/
 
PC $ tar xvf tf-a-stm32mp-v2.6-stm32mp-r2-r0.tar.xz
 
PC $ cd tf-a-stm32mp-v2.6-stm32mp-r2/
 

 

8. OP-TEE 설치

PC $ cd optee-os-stm32mp-3.16.0-stm32mp-r2-r0/
 
PC $ tar xvf optee-os-stm32mp-3.16.0-stm32mp-r2-r0.tar.xz
 
PC $ cd optee-os-stm32mp-3.16.0-stm32mp-r2/
 

 

9. debug symbol files 확인

/home/본인PC이름/STM/Developer-package/stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23/images/stm32mp1/

폴더로 이동

 

 

Target
Board
STM32MP157F-EV1(ST)
Host
PC - Ubuntu 22.04
목표
STM32MP1 개발 환경 구축 - Starter Package

STM32MP157F-EV1(ST) Board 개발을 위한 개발 환경 구축을 위한 과정이다.

 

Starter Package 설치 과정은 아래 링크를 참고 하였다.


1. STM32CubeProgrammer 설치

1-1. STM32CubeProgrammer : 이전 단계에서 이미 설치

 

1-2. 환경 변수 등록

PC $ export PATH=$HOME/STMicroelecronics/STM32Cube/STM32CubeProgrammer/bin:$PATH
 

 

1-3. 제대로 설치 되었는지 확인

PC $ STM32_Programmer_CLI --h
 

 

2. USB serail link 설치

2-1. libusb 설치

PC $ sudo apt-get install libusb-1.0-0
 
PC $ cd $HOME/STMicroelecronics/STM32Cube/STM32CubeProgrammer/Drivers/rules
PC $ sudo cp *.* /etc/udev/rules.d/
 

 

3. Starter Package 다운 로드

3-1. 새 폴더 만들기

PC $ mkdir /home/본인PC이름/STM/Starter-package
 
en.SDK-x86_64-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar.gz

 

3-2. 다운로드 받은 파일 gzip 풀기

PC $ gzip -d en.FLASH-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar.gz
 

 

3-3. tar 풀기

PC $ tar xvf en.FLASH-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar
 

 

4. 보드에 image 다운로드

4-1. 스위치를 아래와 같이 설정하고 PC와 CN16/USB_OTG를 연결(커넥터가 micro AB타입)

 

4-2. STM32CubeProgrammer 실행

 

4-3. Connect

 

4-4. 'Open file'

/home/본인PC이름/STM/Starter-package/stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23/images/stm32mp1/flashlayout_st-image-weston/optee

 

위 경로 폴더로 이동

 

4-5. 'FlashLayout_sdcard_stm32mp157x-ev1-optee.tsv' 선택

 

4-6. Download(시간이 너무 오래 걸려서 실행 시켜놓고 다음날 완료 된것을 확인)

 

 

5. Boot

5-1. 스위치를 아래와 같이 설정하고 보드 전원 켬

5-2. Reset 버튼 누름

5-3. 시간이 좀 걸리고 화면이 뜸

 

6. 기본 명령어 실행

6-1. Serial Terminal(minicom) 설치

 PC $ sudo apt-get install minicom
 

 

6-2. ttyACM에 붙이려면 ST-LINK/V2-1가 연결 되어 있어야 한다.

PC $ ls /dev/ttyACM*
 

 

6-3. minicom 을 /dev/ttyACM0에 연결

PC $ minicom -D /dev/ttyACM0
 

 

6-4. 리셋 버튼을 눌러 보드를 리셋하면 부팅 로그가 미니컴 창에 표시됨

 

6-5. 시스템 정보 표시

root@stm32mp1:~# uname -a
 

6-6. Linux 커널 및 GCC 버전 표시

root@stm32mp1:~# cat /proc/version
 

 

6-7. 디스크 공간 표시

Board $ df -h
 

 

6-8. ssh 연결(이더넷 선이 연결 되어 있어야함)

ip 얻기

Board $ ip addr show eth0
 

컴퓨터에서 ssh를 사용하여 보드에 연결(본인 보드 ip 넣을 것)

 

PC $ ssh root@172.10.6.98
 

 

+ Recent posts