Getting started guides



유비노스 시작 안내서 (윈도우즈)

유비노스 시작 안내서 (윈도우즈) 동영상:

유비노스 관련 문의 및 답변 페이지:

1. 운영체제 종속적 패키지 설치

1.1. Chocolatey 설치

  1. 관리자 권한으로 PowerShell 실행

  2. 다음 명령어 실행

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
  1. PowerShell 창 닫기

1.2. 필요한 패키지 설치

  1. 관리자 권한으로 명령 프롬프트(cmd.exe) 실행

  2. 다음 명령어 실행해 필요한 패키지 설치

choco feature enable -n allowGlobalConfirmation
choco install ninja make gperf git dtc-msys2 wget 7zip python311 python3-virtualenv cmake qemu
  1. 명령 프롬프트(cmd.exe) 창 닫기

  2. 시스템 변수의 PATH에 다음 경로를 추가한다.

  • 시스템 변수의 PATH 설정 메뉴
    • 윈도우 설정 -> 시스템 -> 정보 -> 고급 시스템 설정 -> 환경 변수 -> 시스템 변수 -> Path

  • 추가할 경로

C:\Program Files\qemu

그림 2 은 경로 설정 예를 보여준다.

Ubinos Env. Path Setting for Windows 11

그림 2 Ubinos Env. Path Setting for Windows 11

  1. 일반 사용자 권한으로 명령 프롬프트(cmd.exe) 실행

  2. 다음 명령을 수행해 git 사용자 이름과 이메일 설정

Note

“Your Name”과 “your-email@example.com”을 본인의 이름과 이메일로 변경해서 실행해야 합니다.

git config --global user.name "Your Name"
git config --global user.email "your-email@example.com"
  1. 명령 프롬프트(cmd.exe) 창 닫기

2. ssh key 생성 및 github에 등록

2.1. ssh key 생성

  1. 일반 사용자 권한으로 명령 프롬프트(cmd.exe) 실행

  2. 다음 명령어를 실행해 ssh key를 생성

ssh-keygen -t rsa -b 4096
  • file을 입력하라는 메시지가 나오면 엔터를 눌러 기본값을 선택합니다.

  • passphrase를 입력하라는 메시지가 나오면 엔터를 눌러 no passphrase를 선택합니다.

  1. 다음 명령어를 실행해 생성한 공개키를 클립보드에 복사

type %USERPROFILE%\.ssh\id_rsa.pub | clip
  • file을 기본값인 id_rsa가 아닌 다른 것을 선택했다면 해당 file로 변경해서 실행해야 합니다.

  1. 명령 프롬프트(cmd.exe) 창 닫기

2.2. 생성한 공개키를 github에 등록

  1. 웹브라우저로 https://github.com 에 접속한한 후, 로그인

  2. 오른쪽 상단의 프로필 사진을 클릭한 후, Settings 클릭

  3. 좌측 메뉴에서 SSH and GPG keys 클릭

  4. New SSH key 클릭

  5. Title에 원하는 이름을 입력

  6. Key에 복사한 공개키를 붙여넣기

  7. Add SSH key 클릭

3. 유비노스 소스트리 다운로드 및 개발용 가상환경 생성

3.1. 유비노스 소스트리 다운로드

  1. 일반 사용자 권한으로 명령 프롬프트(cmd.exe) 실행

  2. 다음 명령을 실행해 작업용 디렉토리 생성 후 해당 디렉토리로 이동

mkdir C:\MyWorks\ubinos
cd C:\MyWorks\ubinos
  1. 다음 명령어를 실행해 유비노스 소스트리 다운로드 후 해당 디렉토리로 이동

git clone https://github.com/ubinos/ubiworks.git
cd ubiworks
  1. 다음 명령어를 실행해 유비노스 소스트리 서브모듈 다운로드

git submodule update --init
git submodule foreach git switch ubinos-main
  1. 명령 프롬프트(cmd.exe) 창 닫기

3.2. 개발용 가상환경 생성

  1. 일반 사용자 권한으로 명령 프롬프트(cmd.exe) 실행

  2. 다음 명령을 실행해 유비노스 소스트리 make 디렉토리로 이동

cd C:\MyWorks\ubinos\ubiworks\make
  1. 다음 명령을 실행해 “Ubinos config selecgtor”를 실행

make xsel
  1. “Ubinos config selecgtor” 창이 뜨면 다음을 선택한 후 Select 버튼을 클릭

  • ubinos project의 ubinos_venv

  1. 다음 명령을 실행해 빌드

make rebuildd
  1. 빌드가 정상적으로 완료되면 다름과 같이 가상환경 활성화, 비활성화 명령이 출력됨

""
"* env activate command: "
"C:\MyWorks\ubinos\ubiworks\output\ubinos_venv\Scripts\activate.bat"
""
"* env deactivate command: "
"deactivate"
""
  1. 가상환경 활성화 명령을 실행해 ubinos_venv 활성화

"C:\MyWorks\ubinos\ubiworks\output\ubinos_venv\Scripts\activate.bat"

위 명령처럼 절대경로로 실행해도 되지만, 아래 명령처럼 상대경로로 실행해도 됩니다.

..\output\ubinos_venv\Scripts\activate.bat
  1. 명령 프롬프트(cmd.exe) 창 닫기

4. VSCode 설치

  1. 웹브라우저로 다음 URL에 접속해, VSCode를 다운로드 및 설치

5. GNU ARM Embedded Toolchain 설치

  1. 웹브라우저로 다음 URL에 접속해, gcc-arm-none-eabi-10.3-2021.10-win32.exe를 다운로드 및 설치

Note

설치 완료 창이 뜨면 “Add path to environment variable”을 반드시 체크 하고 마침 버튼을 눌려야 합니다.

6. VSCode로 유비노스 소스트리 열기

  1. 일반 사용자 권한으로 명령 프롬프트(cmd.exe) 실행

  2. 다음 명령을 실행해 유비노스 소스트리 make 디렉토리로 이동

cd C:\MyWorks\ubinos\ubiworks\make
  1. 다음 명령을 실행해 유비노스 개발용 가상환경 활성화

..\output\ubinos_venv\Scripts\activate.bat
  1. 다음 명령을 실행해 VSCode로 유비노스 소스트리 열기

code ..

7. VSCode로 유비노스 hello_world 예제 선택, 빌드, 실행

Note

VSCode에서 “Run build task” 등 실행, 각종 View 선택 방법은 VSCode 활용 팁 참조

  1. VSCode에서 “Run build task” 실행 후, 다음 명령을 선택해 “Ubinos config selecgtor”를 실행

make xsel
  1. “Ubinos config selecgtor” 창이 뜨면 다음을 선택한 후 Select 버튼을 클릭

  • ubinos project의 hello_world_netduinoplus2_qemu

  1. VSCode에서 “Run build task” 실행 후, 다음 명령을 선택해 빌드

make rebuildd
  1. 빌드가 정상적으로 완료되면 다름과 같이 빌드 정보가 출력됨

[100%] Linking C executable app.elf


entry address                = 0x0800043c (   134218812)

isr vector start             = 0x08000000 (   134217728)
isr vector end               = 0x08000188 (   134218120)
isr vector size              = 0x00000188 (         392) bytes

relocated isr vector start   = 0x20000000 (   536870912)
relocated isr vector end     = 0x20000200 (   536871424)
relocated isr vector size    = 0x00000200 (         512) bytes

text start                   = 0x08000000 (   134217728)
text end                     = 0x080204a0 (   134349984)
text size                    = 0x000204a0 (      132256) bytes

data start                   = 0x20000200 (   536871424)
data end                     = 0x2000053c (   536872252)
data size                    = 0x0000033c (         828) bytes

bss start                    = 0x2000053c (   536872252)
bss end                      = 0x200019e8 (   536877544)
bss size                     = 0x000014ac (        5292) bytes

heap base                    = 0x200019e8 (   536877544)
heap limit                   = 0x2001f800 (   536999936)
heap size                    = 0x0001de18 (      122392) bytes

stack limit                  = 0x2001f800 (   536999936)
stack top                    = 0x20020000 (   537001984)
stack size                   = 0x00000800 (        2048) bytes

flash start                  = 0x08000000 (   134217728)
flash size                   = 0x00100000 (     1048576) bytes
flash usage                  = 0x000207dc (      133084) bytes

ram start                    = 0x20000000 (   536870912)
ram size                     = 0x00020000 (      131072) bytes
ram static usage             = 0x000019e8 (        6632) bytes


[100%] Built target app
make[1]: Leaving directory 'C:/MyWorks/ubinos/ubiworks/output/hello_world_netduinoplus2_qemu'
""
"# [End   common-build - hello_world_netduinoplus2_qemu]"
"###############################################################################"
""
  1. VSCode에서 “Run build task” 실행 후, 다음 명령을 선택해 빌드된 elf 파일을 load

make load

정상적으로 load가 완료되면 QEMU과, qemu-system-arm 창이 나타납니다.

  1. VSCode에서 “Run build task” 실행 후, 다음 명령을 선택해 load된 elf 파일을 실행

make xrun

정상적으로 실행되면 arm-none-eabi-gdb 창이 뜨고, qemu-system-arm 창에 hello world 메시지가 출력됩니다.

8. VSCode로 유비노스 hello_world 예제 디버깅하기

Note

VSCode에서 “Run build task” 등 실행, 각종 View 선택 방법은 VSCode 활용 팁 참조

  1. 다음을 참조해 VSCode로 유비노스 소스트리 열기

  1. VSCode에서 “Extensions” View를 선택한 후, 다음 확장 프로그램을 설치

  • C/C++ (by Microsoft)

  • C/C++ Themes (by Microsoft)

  • C/C++ Extension Pack (by Microsoft)

  • Python (by Microsoft)

  • CodeLLDB (by Vadim Chugunov)

  • CMake (by twxs)

  • MemoryView (by mcu-debug)

  • Open (by sandcastle)

  • CMake Tools (by Microsoft)

  • Makefile Tools (by Microsoft)

  1. 다음 확장 프로그램을 비활성화

  • CMake Tools (by Microsoft)

  • Makefile Tools (by Microsoft)

  1. VSCode에서 “Run and Debug” View를 선택한 후, “Run and debug” 구성으로 “ARM Target (build load)”을 선택

  2. “F5” 키를 눌러 “Start Debugging” 명령 실행

  3. VSCode의 Breakpoints 창으로 마우스를 옮기면 나타나는 “+” 버튼을 누른 후, 다음을 입력해 main, appmain 함수 symbol에 breakpoint를 설정

main
appmain
  1. 다시 “F5” 키를 눌러 “Continue” 명령 실행