분류 전체보기 (42) 썸네일형 리스트형 10 FreeRTOS Tutorial: Queues part2 https://www.youtube.com/watch?v=Z-XD3Q7Hqps&list=PLEfMFrwVdbPYzMgeaLiFRb4ogjV8m3lt6&index=10 TaskHandle_t myTask1Handle = NULL; TaskHandle_t myTask2Handle = NULL; QueueHandle_t myQueue; void myTask1(void *pvParameters) { TickType_t xDelay = pdMS_TO_TICKS(1000); TickType_t myLastUnblock; myLastUnblock = xTaskGetTickCount(); char myTxBuff[30]; myQueue = xQueueCreate( 5 , sizeof(myTxBuff) ); //size.. 09 FreeRTOS Tutorial: Queues part1 https://www.youtube.com/watch?v=elgkseFUpmk TaskHandle_t myTask1Handle = NULL; TaskHandle_t myTask2Handle = NULL; QueueHandle_t myQueue; void myTask1(void *pvParameters) { TickType_t xDelay = pdMS_TO_TICKS(1000); TickType_t myLastUnblock; myLastUnblock = xTaskGetTickCount(); char myTxBuff[30]; myQueue = xQueueCreate( 5 , sizeof(myTxBuff) ); //size of queue (number of block), size of each block s.. 08 FreeRTOS Tutorial: Task Utilities part2 이번 시간에는 TaskState에 대해 받아오는 것을 해본다. https://www.youtube.com/watch?v=hh8huHGpYLA void myTask1(void *pvParameters) { TickType_t xDelay = pdMS_TO_TICKS(1000); TickType_t myLastUnblock; myLastUnblock = xTaskGetTickCount(); //char* text = "Task1\r\n"; //char* text = pcTaskGetName(myTask1Handle); char* text = "Task1"; int count = 0; vTaskSuspend(myTask1Handle); for(;;) { vTaskDelayUntil( &myLastUnblock.. 07 FreeRTOS Tutorial: Task Utilities part1 https://www.youtube.com/watch?v=cUO_Hn6536s TaskHandle_t myTask1Handle = NULL; TaskHandle_t myTask2Handle = NULL; void myTask1(void *pvParameters) { TickType_t xDelay = pdMS_TO_TICKS(1000); TickType_t myLastUnblock; myLastUnblock = xTaskGetTickCount(); //char* text = "Task1\r\n"; char* text = pcTaskGetName(myTask1Handle); int count = 0; for(;;) { HAL_UART_Transmit(&huart2, (uint8_t *)text,strlen.. #ifndef ~ #endif 구조체 중복 정의로 인해 발생하는 오류 ☞ 일단 main.c에서 point.h를 포함한다. 그리고 pointOperation.h를 포함하는데, pointOperation.h가 point.h를 포함하므로 결과적으로 main.c는 point.h를 두 번 포함하는 셈이 된다. 전처리기는 이를 문제삼지 않는다. 전처리기는 #include 문의 명령대로 main.c에 구조체 point의 정의를 두 번 포함시킬 뿐이다. 문제는 컴파일러가 일으킨다. 컴파일러는 point 구조체의 정의가 두 번 등장했음 을 인식하고 에러메시지를 발생시킨다. ♠ 중복 정의를 피하기 위한 매크로 #ifndef ~ #endif ☞ ifndef는 "If not defined"의 약자로서 "~을 정의(define)하지 않았다면" 이라는 뜻이다.. Embedded Recipe 링크 http://recipes.egloos.com/5000239 임베디드 개발자가 쉽게 써준 블로그 글들입니다. 도움 되는게 많이 있을거에요! ARM의 AMBA BUS 종류 https://wh00300.tistory.com/1 메모리 영역(code, data, stack, heap) 프로그램은 크게 instruction(명령)과 data로 구분되며, 일반적으로 4가지, 좀더 세분화 하면 5가지 정도 구분 할 수 있다. --> 아래 그림 참조. 1) code 영역 - 코드 자체를 구성하는 메모리 영역으로 Hex파일이나 BIN파일 메모리다. - 프로그램 명령이 위치하는 곳으로 기계어로 제어되는 메모리 영역이다. 2) data 영역 - 전역변수(global), 정적변수(static), 배열(array), 구조체(structure) 등이 저장된다. 가) 초기화 된 데이터는 data 영역에 저장되고, 나) 초기화 되지 않은 데이터는 BSS (Block Stated Symbol) 영역에 저장된다. - 프로그램이 실행 될 때 생성되고 프로그램이 종료 되면 시스템에 반환 된다. - 함수 내부에 선.. 이전 1 2 3 4 5 6 다음