반응형

 맥이든 윈도우든 리눅스든 arm 기반의 디바이스용 코드를 빌드하기 위해서는 arm toolchain 이 필요하다.

맥에서는 간단히 brew uninstall gcc-arm-none-eabi

이렇게 설치를 했는데 정작 어느 경로로 설치가 되었는지 알 수 가 없다

보통 cmake나 make 는 /usr/local/bin에 있는데 

gcc-arm-none-eabi 파일은 찾을수가 없었다. 

 

그래서 몇번 삽질을 하고 검색한 끝에 답을 찾을 수 있었다.

brew cask install gcc-arm-embedded

 

==> Tapping caskroom/cask

Cloning into '/usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask'...

remote: Counting objects: 3748, done.

remote: Compressing objects: 100% (3732/3732), done.

remote: Total 3748 (delta 34), reused 386 (delta 12), pack-reused 0

Receiving objects: 100% (3748/3748), 1.26 MiB | 25.00 KiB/s, done.

Resolving deltas: 100% (34/34), done.

Tapped 0 formulae (3,757 files, 4.0MB)

==> Creating Caskroom at /usr/local/Caskroom

==> We'll set permissions properly so we won't need sudo in the future

Password:

==> Downloading https://developer.arm.com/-/media/Files/downloads/gnu-rm/6_1-201

######################################################################## 100.0%

==> Verifying checksum for Cask gcc-arm-embedded

==> Linking Binary 'arm-none-eabi-addr2line' to '/usr/local/bin/arm-none-eabi-ad

==> Linking Binary 'arm-none-eabi-ar' to '/usr/local/bin/arm-none-eabi-ar'.

==> Linking Binary 'arm-none-eabi-as' to '/usr/local/bin/arm-none-eabi-as'.

==> Linking Binary 'arm-none-eabi-c++' to '/usr/local/bin/arm-none-eabi-c++'.

==> Linking Binary 'arm-none-eabi-c++filt' to '/usr/local/bin/arm-none-eabi-c++f

==> Linking Binary 'arm-none-eabi-cpp' to '/usr/local/bin/arm-none-eabi-cpp'.

==> Linking Binary 'arm-none-eabi-elfedit' to '/usr/local/bin/arm-none-eabi-elfe

==> Linking Binary 'arm-none-eabi-g++' to '/usr/local/bin/arm-none-eabi-g++'.

==> Linking Binary 'arm-none-eabi-gcc' to '/usr/local/bin/arm-none-eabi-gcc'.

==> Linking Binary 'arm-none-eabi-gcc-ar' to '/usr/local/bin/arm-none-eabi-gcc-a

==> Linking Binary 'arm-none-eabi-gcc-nm' to '/usr/local/bin/arm-none-eabi-gcc-n

==> Linking Binary 'arm-none-eabi-gcc-ranlib' to '/usr/local/bin/arm-none-eabi-g

==> Linking Binary 'arm-none-eabi-gcov' to '/usr/local/bin/arm-none-eabi-gcov'.

==> Linking Binary 'arm-none-eabi-gcov-tool' to '/usr/local/bin/arm-none-eabi-gc

==> Linking Binary 'arm-none-eabi-gdb' to '/usr/local/bin/arm-none-eabi-gdb'.

==> Linking Binary 'arm-none-eabi-gdb-py' to '/usr/local/bin/arm-none-eabi-gdb-p

==> Linking Binary 'arm-none-eabi-gprof' to '/usr/local/bin/arm-none-eabi-gprof'

==> Linking Binary 'arm-none-eabi-ld' to '/usr/local/bin/arm-none-eabi-ld'.

==> Linking Binary 'arm-none-eabi-ld.bfd' to '/usr/local/bin/arm-none-eabi-ld.bf

==> Linking Binary 'arm-none-eabi-nm' to '/usr/local/bin/arm-none-eabi-nm'.

==> Linking Binary 'arm-none-eabi-objcopy' to '/usr/local/bin/arm-none-eabi-objc

==> Linking Binary 'arm-none-eabi-objdump' to '/usr/local/bin/arm-none-eabi-objd

==> Linking Binary 'arm-none-eabi-ranlib' to '/usr/local/bin/arm-none-eabi-ranli

==> Linking Binary 'arm-none-eabi-readelf' to '/usr/local/bin/arm-none-eabi-read

==> Linking Binary 'arm-none-eabi-size' to '/usr/local/bin/arm-none-eabi-size'.

==> Linking Binary 'arm-none-eabi-strings' to '/usr/local/bin/arm-none-eabi-stri

 

==> Linking Binary 'arm-none-eabi-strip' to '/usr/local/bin/arm-none-eabi-strip'

 

이렇게 하면 arm-none-eabi 파일들이 /usr/local/bin 에 설치가 된다.

 

이제 IDE에서 툴체인 경로를 설정하면 정상적으로 빌드가 된다.

 

참조: https://gist.github.com/joegoggins/7763637

 

반응형

'Computer > mac' 카테고리의 다른 글

mac 에서 git 언어 변경되는 문제  (1) 2018.11.30
OSX 에서 아이튠즈 IOS백업 위치 변경  (0) 2018.05.31
반응형

PX4 소스코드는 내용이 매우 방대하므로 터미널에서 개발하는것은 거의 불가능에 가깝고 

Eclipse를 사용하면 전체 소스를 보기는 편하지만 객체와 구조체가 연결되지 않아서 클래스에 어떤 것들이 포함되어 있는지 알기 어렵다.

그래서 PX4 개발진들은 QtCreator(이하 큐티)에서 개발 하는것을 권장한다.

mac 에 qt를 설치하는 과정은 여러곳에서 설명하고 있으므로 생략한다. 


자세한 내용은 https://dev.px4.io/en/setup/building_px4.html 에 정리되어 있는데 이 내용은 리눅스를 기본으로 하고 있다.


그래서 mac 에서 하는 방법을 정리해본다.


이전 튜토리얼에 따라 소스코드가 /home/src/Firmware 에 있다고 가정한다.

그리고 다음을 수행한다.

cd ~/src/Firmware
mkdir build_creator
cd build_creator
cmake .. -G "CodeBlocks - Unix Makefiles"

정리하면 소스코드 루트 폴더에 build_creator라는 폴더를 만든 후 cmake 파일을 생성하는 것이다.

Makefiles"

REINITIALIZING GIT SUBMODULES

no git repo found in NuttX/NxWidgets/.git

Synchronizing submodule url for 'NuttX'

Synchronizing submodule url for 'Tools/gencpp'

Synchronizing submodule url for 'Tools/genmsg'

Synchronizing submodule url for 'Tools/jMAVSim'

Synchronizing submodule url for 'Tools/sitl_gazebo'

Synchronizing submodule url for 'cmake/cmake_hexagon'

Synchronizing submodule url for 'mavlink/include/mavlink/v1.0'

Synchronizing submodule url for 'mavlink/include/mavlink/v2.0'

Synchronizing submodule url for 'src/drivers/gps/devices'

Synchronizing submodule url for 'src/lib/DriverFramework'

Synchronizing submodule url for 'src/lib/ecl'

Synchronizing submodule url for 'src/lib/matrix'

Synchronizing submodule url for 'src/modules/uavcan/libuavcan'

Synchronizing submodule url for 'unittests/googletest'

.

.

.

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Detecting C compile features

-- Detecting C compile features - done

-- Found PythonInterp: /usr/bin/python (found version "2.7.10") 

-- Found PY_jinja2: /Library/Python/2.7/site-packages/jinja2  

-- C compiler: Apple LLVM version 8.0.0 (clang-800.0.42.1)

-- C++ compiler: Apple LLVM version 8.0.0 (clang-800.0.42.1)

-- Configuring done

-- Generating done

-- Build files have been written to: /Users/###########/px4/src/Firmware/build_creator

 



$ ls 를 하면 아래와 같은 파일들이 생성된다.


CMakeCache.txt Makefile msg

CMakeFiles Testing px4.cbp

CPackConfig.cmake build_gazebo src

CPackSourceConfig.cmake cmake_install.cmake tmp

CTestTestfile.cmake compile_commands.json

DartConfiguration.tcl external


이제 qt 를 실행시키고 프로젝트를 가져온다.


이렇게 가져오면 파일이 추가된다.

이제 빌드 환경을 꾸미는 일이 남아있다.

좌측 패널의 Project 를 선택하고 상단의 Manage Kits 를 선택한다.

Kits를 선택하고 Add 를 눌러 새로운 빌드 환경을 추가한다.

이제 추가한 PX4_Build 를 선택하면 아래와 같이 설정한다.

Sysroot 를 /Users/#######/px4/src/Firmware 로 설정 (여기서 #####는 사용자 이름이다)

이제 CMake 패널로 이동하고 ADD를 눌러 Cmake 항목을 아래와 같이 추가한다.


Cmake 의 Path: 를 "/usr/local/bin/cmake" 로 작성한다.


이제 Build할때 어떤 명령을 수행할지를 설정한다.

Build Directory: 는 ".../src/Firmware" 로 지정하고 Target을 설정한다.

픽스호크로 빌드하는 경우 px4fmu-v2_default 로 설정

다음은 빌드할때 호출하는 cmake 파일의 경로를 지정한다.

/usr/local/bin 을 PATH 사이에 추가한다.


이제 좌측 하단의 망치 모양의 빌드 버튼을 눌러 빌드가 되는지 확인하면 된다.

아래 그림처럼 나오면 성공



다음은 Run 을 수행하는 방법이다.




반응형
반응형

이번에 제작한 Bixler 드론에 기존에 테스트용으로 가지고있던 Amimon사의 Connex Video TX 시스템을 탑재해 보았다. 

이것은 Connex 시스템의 1세대 버전으로 1080P HD 영상을 최대 1km 까지 최소한의 딜레이로 전송할 수 있다. (제작사는 Zero delay라고 선전중...)

자세한 스펙은 여기

http://www.amimon.com/connex-uav-market/connex-by-amimon-product-page/


일단 실내에서 카메라 1대만 HDMI케이블로 연결하고 3S 배터리를 통해 전원을 공급하였다.

시험 결과는 아래와 같음.

최대 5.9W의 전력을 소비하고 있다. 


이제 정말 잘 되는지는 비행테스트로...


반응형

'Drone' 카테고리의 다른 글

mac 에서 Qgroundcontrol 안드로이드 빌드하기  (0) 2017.05.04
PX4 QTCreator 에서 Build 하기  (0) 2017.04.24
Qgroundcontrol build 하기  (2) 2017.03.18
Hobbyking Bixler 무인기 프로젝트[Part.1]  (0) 2017.01.04
MicroSD 벤치마크  (0) 2016.12.15

+ Recent posts