본문 바로가기
반응형

전체 글280

[FreeRTOS] FreeRTOS의 Task 및 관련 함수 FreeRTOS의 Task 및 관련 함수 xTaskCreate(), vTaskDelay(), vTaskDelayUntil(), vTaskSuspend(), vTaskResume(), vTaskPrioritySet() 1. Task란?FreeRTOS에서 태스크 (Task)란 어느 한 시점에서 Running, Suspended, Waiting되어 있는 함수이다. 프로세스(process)나 스레드(thread)와 비슷하게 동작한다.   2. Task의 특징  - Task의 특징과 생김새 각 Task에는 우선순위를 할당하며 숫자가 높을수록 큰 우선순위를 의미한다.   - 우선순위는 0부터 configMAX_PRIORITIES까지 할당이 가능하다.   - 우선순위가 높은 Task는 낮은 Task를 선점(preem.. 2024. 5. 10.
[FreeRTOS] FreeRTOS 네이밍 규칙 FreeRTOS에서 네이밍 규칙RTOS 커널 및 데모 애플리케이션 소스 코드는 다음 규칙을 사용한다.1. Variables (변수)1. 접두사 u, l, s, c unsigned 타입의 변수는 추가 접두사 u를 갖는다. 변수 이름은 CamelCase 대소문자를 사용하고 명확하게 설명하며 전체 단어(일반적으로 사용되는 약어 제외)를 사용한다.유형 uint32_t의 변수는 접두사로 ul이 붙는다.  - 여기서 'u'는 ' unsigned '을 의미하고 'l'은 'long'를 의미한다.유형 uint16_t의 변수는 접두사로 us가 붙는다.  - 여기서 'u'는 ' unsigned '을 의미하고 's'는 'short'를 의미한다.유형 uint8_t의 변수는 접두사로 uc가 붙는다.  - 여기서 'u'는 ' un.. 2024. 5. 7.
[FreeRTOS] FreeRTOS란? FreeRTOS란? 이를 알기 전 RTOS(실시간 운영체제)에 대해 알아보자.1. RTOS란?1. RTOS(Real Time Operating System)는 실시간 응용 프로그램을 위해 개발된 운영체제임2. 운영체제의 기능 중 CPU 시간 관리 부분에 초점을 맞추어 설계되었음3. 실시간 운영체제는 프로그래머가 프로세스 우선 순위에 더 많은 제어를 할 수 있게 함4. 응용 프로그램의 우선 순위가 시스템 프로그램의 우선 순위를 넘어설 수도 있음5. 시스템 코드의 임계 구역을 최소화하였으며, 이를 통하여 응용 프로그램의 처리 요청을 정해진 시간 안에 처리해 줄 수 있음 - 실시간 운영체제의 핵심은 응용 프로그램 Task처리에 걸리는 시간을 일관되게 유지할 수 있는 정도에 있음- 처리 시간의 변동폭은 지터(j.. 2024. 5. 6.
[Github] 로컬 저장소 깃허브에 연결하기 로컬에 있는 저장소를 Github와 연결하는 방법 2가지 상황1. 최초 README.md 파일이 존재하지 않고 막 만든 로컬 저장소를 깃허브에 연결할 때echo "# repositoryName" >> README.mdgit initgit add README.mdgit commit -m "first commit"git branch -M maingit remote add origin [깃허브 주소]git push -u origin main 2. 이미 로컬 저장소가 "다른 곳"에 연결되어 있어 새로운 깃허브에 연결할 때 - 위와 같은 상황의 "다른 곳"은 다른 깃허브 repository 혹은 같은 깃허브 내의 다른 branch를 이야기한다.git remote add [브랜치명] [깃허브 주소]git branc.. 2024. 4. 30.
[정규식] 빈 줄 제거, 특정문자 이후 및 이전 모두 선택 Regex, 정규식 빈 줄 선택, 특정문자 이후 및 이전 모두 선택  1. 빈 줄 선택 ( ^$\n )^$\nex) VSC에서 ctrl+H 이후 정규식 활성화하고 위 정규식 입력후 [공백]과 교체하면 빈줄이 전부 제거된다.   2. 특정문자 이후 모두 선택 ( [특정문자].*$ )ex. > 이후 모두 선택 >.*$   3. 특정문자 이전 모두 선택 ( ^.*[특정문자] )ex. ^.* 2024. 4. 29.
[C, C++] 모든 타입 정리 uint8_t, uint16_t, uint32_t, uint64_t vs int8_t, int16_t, int32_t, int64_t, bool, char, unsigned char, short, unsigned short, int, unsigned int, long, unsigned long, long long, unsigned long long, float, double long, double wchar_t 정리  1. uint8_t, uint16_t, uint32_t, uint64_t vs int8_t, int16_t, int32_t, int64_t는 왜 사용하는 것인가?C언어의 기본 자료형으로 char, short, int, long 등이 있지만 몇비트 머신이냐에 따라 모호하기 때문에, 비트가 명.. 2024. 4. 24.
[크롬 개발자 도구] Device Mode 사용하기 모바일 웹 개발 시 웹사이트, 앱 반응형 확인할 때 도움이 되는 크롬 Device Mode 사용하는 법 1. F12를 눌러 크롬 개발자 도구를 킨다.2. Window, Linux이라면 Ctrl + Shift + M를 누르기Mac이라면 Command + Shift + M를 누르기 3. 개발자 도구 좌측 위에 아래 아이콘 클릭Device Mode 아이콘이 파란색이면 OnDevice Mode 아이콘이 검정색이면 Off  4. 왼쪽 위 부분에서 원하는 디바이스로 설정 후 웹사이트 확인 2024. 4. 23.
[Nextra] 마크다운 파일(.md) 테이블 사용(<table></table>) Nextra에서 .md파일에서 테이블 사용하는 방법1. GFM구문으로 .md파일에서 테이블 생성| left | center | right || :----- | :----: | ----: || 1 | 2 | 3 || a | b | c | 결과leftcenterright123abc ※ GFM 구문이란?https://github.github.com/gfm/#tables-extension- GitHub Flavored Markdown Spec github.github.com  2. 동적 테이블 + { } 추가{ left center right {[ .. 2024. 4. 22.
[Arduino] Wire 라이브러리 함수 총 정리 Arduino의 Wire 라이브러리의 클래스 이름은 TwoWire이고 이는 I2C 통신의 다른 이름인 TWI(Two Wire Interface)에서 유래 TwoWire 클래스에서 전역객체로 Wire를 사용하고 있으므로 실제로는 Wire를 통해 통신이 이루어진다. Wire 라이브러리 함수 모음 Wire.begin() Wire.begin(address) - address: 7비트 슬레이브 주소, 지정되지 않은 경우 버스를 컨트롤러 장치로 참여시킨다. Wire 라이브러리를 초기화 및 I2C 버스를 컨트롤러 또는 주변 장치로 결합하는 함수이다. 이 함수는 일반적으로 한 번만 호출되어야 한다. 1. Wire.begin()은 Mater역할을 한다. 2. Wire.begin(address)는 Slave역할을 한다. .. 2024. 1. 11.
[ESP32] DeepSleep을 포함한 다양한 절전모드 정리 ESP32 절전 모드(저전력 모드)와 각 모드의 전력 소비 정리 ESP32의 다양한 절전 모드가 왜 필요한가? 1. ESP32는 다른 Arduino 보드에 비해 훨씬 더 높은 주파수에서 실행되는 매우 강력한 마이크로컨트롤러 2. WiFi, Bluetooth 및 무선 지원 기능을 갖추고 있어 전력 소모가 훨씬 더 많은 마이크로컨트롤러 3. 일부 IoT 애플리케이션의 경우 배터리 수명은 신중하게 관리해야 하는 매우 중요한 리소스 4. ESP32를 사용하여 애플리케이션에 필요한 기능을 달성하고 장시간 작동 동안 배터리 수명을 유지하는 동안 절전을 극대화하는 방법 ESP32 절전 모드 및 전원 모드 1. ESP32 전원 관리 기능은 사용자에게 구성 및 선택 가능한 5가지 전원 모드를 제공한다. 2. 시스템 설계.. 2024. 1. 10.
반응형