# QT 4.7.4

# Ubuntu 16

 

• 필수 패키지 설치

sudo apt-get install build-essential mesa-common-dev libglu1-mesa-dev


• 다운로드 사이트

http://download.qt.io/archive/qt/



• 권한 설정

$ chmod a+x qt-opensource-linux-x86-5.5.1.run


Qt 설치

$ ./qt-opensource-linux-x86-5.5.1.run




• 설치 경로 설정


 컴포넌트 설치





• 설치 완료


• 프로젝트 설정

New File or Project








• 컴파일 설정










끝.


출처: https://www.ics.com/blog/getting-started-qt-and-qt-creator-linux

출처: http://forum.falinux.com/zbxe/index.php?document_srl=781083&mid=graphic

# QT 4.7.4

# Ubuntu 16


Qt 다운로드

→ 공유 디렉토리에서 Qt를 복사해 온다.

 

• 압축 해제

$ tar xzvf qt-everywhere-opensource-src-4.7.4.tar.gz

$ cd qt-everywhere-opensource-src-4.7.4

 

qmake.conf 수정

→ 크로스 컴파일러를 수정해 준다.

$ vi mkspecs/qws/linux-arm-g++/qmake.conf


configure

$ ./configure -embedded arm -opensource -qt-zlib -qt-gif -no-iconv -no-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -qt-freetype -qvfb -little-endian -no-neon -no-nis -no-cups


• 옵션 설명

URL http://radekp.github.io/qtmoko/api/buildsystem/over-configure-options-qt-embedded-1.html


$ make

또는 $ make -j<cpu 코어 숫자 + 1>

 

$ sudo make install


• 환경 설정

$ sudo vi /etc/profile

export PATH=$PATH:/usr/local/Trolltech/QtEmbedded-4.7.4-arm/bin

 

$ export QTDIR=/usr/local/Trolltech/QtEmbedded-4.7.4-arm/

$ export PATH=$QTDIR/bin:$PATH


• example


• 컴파일 



• 컴파일 에러 발생


• 컴파일 에러 해결방안

$ sudo apt-get install qt4-qmake libqt4-dev


끝.


출처: http://gentooboy.tistory.com/10

출처: http://forum.falinux.com/zbxe/index.php?document_srl=781083&mid=graphic

출처: http://korone.net/bbs/board.php?bo_table=qt_qna&wr_id=17866

# STM32F769BIT6 (208Pin / 216Mhz)

# FreeRTOS (RTOS)

# GPIO (LED)

# CubeMX 4.21.0 / STM32F7 1.7.0



LL 드라이버를 사용하여 Key 입력에 따라 LED를 제어하는 방법을 기술하였습니다.

CubeMX에서 GPIO Pin 설정, Clock, 설정, FreeRTOS 포팅하고, LL 드라이버를 프로젝트에 추가하여 GPIO를 제어하는 방법을 기술하였습니다.

ST에서 Templates_LL를 제공하고 있으나, 이 내용은 추후 기술하겠습니다. (CubeMX HAL + LL Driver)

 

ST에서 처음으로 나온 드라이버는 SPL(Standard Peripheral Libraries) 입니다. 하지만 현재는 HAL and LL drivers 넘어가는 추세인 것 같습니다.

CubeMX에서 프로젝트를 생성하고, HAL 드라이버를 기본으로 사용하다 보면 불편한 점이 많습니다. 가장 큰 단점은 최적화(Optimizer)가 많이 안되어 있습니다.

회사 프로젝트는 일단 STD 라이브러리(SPL) 사용하여 프로젝트를 진행중이고, 추후 HAL 드라이버를 적용할 예정입니다.

 

HAL, SPL, LL 드라이버 비교 내용은 ST 홈페이지에서 확인 가능합니다.

en.stm32_embedded_software_offering.pdf”


# 개요

KEY1 = PD12 / KEY2 = PD13

LED1= PG13 / LED2 = PG14


# CubeMX Pin 설정

1. PG13, PG14 GPIO_Output

2. PD12, PD13 GPIO_Input

3. SWDIO, SWCLK

4. RCC_OSC


# Clock 설정


# FreeRTOS 


# GPIO Pin 설정 (Key 회로에 Pull Up이 되어 있으므로, no pull-up no pull-down 으로 설정한다.)


# Project Settings (All used Libraries into the project folder를 선택한다)




# Code

freertos.c 파일에 아래 헤더파일을 추가합니다.

#include "stm32f7xx_ll_gpio.h"


#define C_KEY1 GPIO_PIN_12

#define C_KEY2 GPIO_PIN_13


#define C_LED1 GPIO_PIN_13

#define C_LED2 GPIO_PIN_14


freertos.c → StartDefaultTask() 함수에 아래 코드를 입력합니다.

/* StartDefaultTask function */

void StartDefaultTask(void const * argument)

{

/* USER CODE BEGIN StartDefaultTask */

/* Infinite loop */

uint32_t u32Input = 0x0;

uint32_t u32Output = 0x0;

for(;;)

{

u32Input = LL_GPIO_ReadInputPort(GPIOD);

if(u32Input & C_KEY1)

{

u32Output |= C_LED1;

}

else

{

u32Output &= ~C_LED1;

}

if(u32Input & C_KEY2)

{

u32Output |= C_LED2;

}

else

{

u32Output &= ~C_LED2;

}

LL_GPIO_WriteOutputPort(GPIOG, u32Output);

osDelay(250);

}

/* USER CODE END StartDefaultTask */

}


→ "stm32f7xx_ll_gpio.h" 헤더파일은 프로젝트 폴더 Driver → STM32F7xx_HAL_Driver → Inc에서 확인 할 수 있습니다.

해당 함수는 매크로로 정의되어 있으며,  GPIO PORT의 입력 레지스터(IDR)를 읽고, 출력 레지스터(ODR)에 데이터를 쓰고 있습니다.


# RM0410 Reference manual




끝.




+ Recent posts