반응형
아두이노 freeRTOS 튜토리얼 6
Arduino FreeRTOS2015. 1. 14. 21:05아두이노 freeRTOS 튜토리얼 6

여섯번째 예제는 딜레이없이 계속 두 개의 태스크가 문자열을 출력하는 상황에서 vTaskDelayUntil함수를 사용하여 정확히 500밀리세컨드마다 자신의 문자열을 출력하려는 태스크의 동작을 보여줍니다. 얼마나 오차가 생기는지 볼려고 주기적으로 실행되는 태스크에서 밀리세컨드로 스케줄러가 시작된 이후로 지난 시간을 출력해봤습니다. 초반에는 0, 500, 1001로 거의 500밀리세컨드마다 실행되는듯 하지만.. 좀 지나면 24017, 24521, 25025로 오차가 약간 커지는걸 볼 수 있었습니다. freeRTOS함수들은 아직 익숙치 않아서 시간을 Serial.print함수를 이용해서 출력했는데 이로 인해 생긴 오차가 아닐지 약간 걱정이 되네요.. /* FreeRTOS.org includes. */ #incl..

아두이노 freeRTOS 튜토리얼 5
Arduino FreeRTOS2015. 1. 14. 20:19아두이노 freeRTOS 튜토리얼 5

네번째 예제와 달리 두 개의 태스크의 우선순위를 똑같이 하더라도 번갈아가며 실행되는 것을 볼 수 있다. /* FreeRTOS.org includes. */ //#include "FreeRTOS.h" //#include "task.h" #include "FreeRTOS_AVR.h" /* Demo includes. */ #include "basic_io_avr.h" //태스크에서 사용되는 함수 void vTaskFunction( void *pvParameters ); //태스크로 넘겨줄 두 개의 문자열을 선언 const char *pcTextForTask1 = "Task 1 is running\r\n"; const char *pcTextForTask2 = "Task 2 is running\t\n"; /*--..

아두이노 freeRTOS 튜토리얼 4
Arduino FreeRTOS2015. 1. 14. 20:03아두이노 freeRTOS 튜토리얼 4

네번째 예제는 그동안 for문으로 일정시간 대기 했던 것을 vTaskDelay함수를 사용하도록 변경합니다. 두 개의 태스크의 우선순위가 서로 다른 경우에는 번갈아 가며 실행되지만…. 두 개의 태스크의 우선순위가 같으면 for문을 사용했을 때와 달리 똑같은 태스크가 두 번씩 실행되네요. /* FreeRTOS.org includes. */ //#include "FreeRTOS.h" //#include "task.h" #include "FreeRTOS_AVR.h" /* Demo includes. */ #include "basic_io_avr.h" //태스크에서 사용되는 함수 void vTaskFunction( void *pvParameters ); //태스크로 넘겨줄 두 개의 문자열을 선언 const char..

아두이노 freeRTOS 튜토리얼 3
Arduino FreeRTOS2015. 1. 14. 19:39아두이노 freeRTOS 튜토리얼 3

세번째 예제는 똑같이 두 개의 태스크를 실행하는데 우선순위를 다르게 하면 어떻게 되는지를 보여줍니다. 아두이노에 업로드 시켜보며 우선선위가 높은 태스크2만 계속 출력되는 것을 확인할 수 있습니다. 이전 예제들에서는 두 개의 태스크가 모두 우선순위가 같아서 번갈아 문자열이 출력 되었죠. /* FreeRTOS.org includes. */ //#include "FreeRTOS.h" //#include "task.h" #include "FreeRTOS_AVR.h" /* Demo includes. */ #include "basic_io_avr.h" /* Used as a loop counter to create a very crude delay. */ #define mainDELAY_LOOP_COUNT 4000..

아두이노 freeRTOS 튜토리얼 2
Arduino FreeRTOS2015. 1. 14. 19:23아두이노 freeRTOS 튜토리얼 2

두번째 예제에서는 하나의 함수를 구현해놓고 두 개의 태스크에서 같이 사용하는 것을 보여줍니다. 어떤 태스크가 돌고 있는지 구분하기 위해서 파라메터로 문자열을 넘겨주어 태스크가 출력하도록 하고 있습니다. 실행결과는 첫번째 예제와 동일합니다. /* FreeRTOS.org includes. */ //#include "FreeRTOS.h" //#include "task.h" #include "FreeRTOS_AVR.h" /* Demo includes. */ #include "basic_io_avr.h" /* Used as a loop counter to create a very crude delay. */ #define mainDELAY_LOOP_COUNT 400000// ( 0xffffff ) //태스크에서 ..

아두이노 freeRTOS 튜토리얼 1
Arduino FreeRTOS2015. 1. 14. 14:59아두이노 freeRTOS 튜토리얼 1

아래 포스팅으로 설치된 예제코드들을 하나씩 분석해보고 있습니다. 아두이노 코드랑 freeRTOS코드랑 같이 사용하는게 생소하네요. freeRTOS는 각 포팅되는 플랫폼에서 사용되는 함수들하고 같이 사용되어 지는 거 같네요. Arduino Uno에서 freeRTOS 올려보기 http://webnautes.tistory.com/595 첫번째 예제는 두 개의 택스트가 시리얼로 문자열을 출력하는 예제입니다. Task2와 Task1이 번갈아 가며 출력됩니다. /* FreeRTOS.org includes. */ //#include "FreeRTOS.h" //#include "task.h" #include "FreeRTOS_AVR.h" /* Demo includes. */ #include "basic_io_avr.h..

Arduino Uno에서  freeRTOS 올려보기
Arduino FreeRTOS2015. 1. 12. 12:50Arduino Uno에서 freeRTOS 올려보기

https://github.com/greiman/FreeRTOS-Arduino에서 Download ZIP을 클릭하여 전체 소스를 다운로드 압축을 풀은 후.. 아래 경로에 있는 폴더 세 개를 복사하여 다음 경로에 넣어주었다. 그리고 나서 Arduino IDE를 실행시켜보면 라이브러리가 포함되어 있는 것을 확인해 볼 수 있음. 예제 코드도 추가되어 있음. 쓰레드 2개를 이용하여 LED를 깜빡이게 하는 frBlink예제를 불러와서 업로드 시켜보았다. 그전에 디지털입력 13번에 LED를 연결시켜주어야 함. 잠시 후 LED가 깜빡이기 시작함.

STM32F4 discovery에 freeRTOS 올려보기
미분류2015. 1. 12. 09:49STM32F4 discovery에 freeRTOS 올려보기

참고 https://istarc.wordpress.com/2014/07/10/stm32f4-deploy-freertos-in-under-10-seconds/ 툴체인 설치 아래 글에 나온 대로 설치하면 됨 stm32f4 discovery보드를 Ubuntu linux에서 시작하기 (http://webnautes.tistory.com/591) 추가로 필요한 패키지 설치 sudo apt-get install build-essential git openocd qemu-system-arm symlinks expect freeRTOS 예제 프로젝트 git clone https://github.com/istarc/stm32.git cd stm32 git submodule update –init 실제로 다운로드 받아보니..

반응형
image