본문 바로가기
반응형

전체 글280

[FreeRTOS] ISR 내에서 임계구역 설정 portSET_INTERRUPT_MASK_FROM_ISR(), portCLEAR_INTERRUPT_MASK_FROM_ISR()인터럽트 서비스 루틴(ISR) 내에서 임계 구역을 설정한다.사용예제UBaseType_t uxSavedInterruptStatus;uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR();// ISR 내에서 보호되어야 하는 코드부portCLEAR_INTERRUPT_MASK_FROM_ISR(uxSavedInterruptStatus); 특징1. ISR에서 사용하도록 설계되었다.2. 임계 구역을 설정하여 다른 인터럽트가 중첩되지 않도록 한다. 2024. 9. 13.
[FreeRTOS] 임계구역 설정 taskENTER_CRITICAL(), taskEXIT_CRITICAL() FreeRTOS에서 임계구역을 설정하여 자원 혹은 Task의 CPU 등이 선점되지 않게 하여 자원의 불일치 혹은 중단 없는 안전한 작업을 수행하는 방법이다. ※ 임계구역이란?2024.05.21 - [소프트웨어 공학 용어 정리] - [SW 용어] 동기화(Synchronization), 임계 영역(Critical Section) [SW 용어] 동기화(Synchronization), 임계 영역(Critical Section)동기화(Synchronization)1. 동기화는 시스템을 동시에 작동시키기 위해 여러 사건들을 조화시키는 것을 의미한다.2. 병행성과 관련해서 공유되는 자원에 대한 이해와 공유자원 사용과 관련해서 생길kfdd663.. 2024. 9. 12.
[FreeRTOS] Task 전환 제어 vTaskSuspendAll(), xTaskResumeAll()태스크 스케줄링을 일시 중지하여 현재 태스크가 다른 태스크로 전환되지 않도록 한다.사용예제vTaskSuspendAll();// 태스크 전환 없이 실행해야 하는 코드부xTaskResumeAll(); 특징1. 인터럽트는 계속 발생한다.2. 인터럽트 내에서 FreeRTOS API를 호출하면 안 된다.3. 임계 구역보다 시스템에 미치는 영향이 적다. 2024. 9. 11.
[FreeRTOS] 인터럽트 비활성화 및 활성화하는 방법 portDISABLE_INTERRUPTS(), portENABLE_INTERRUPTS()FreeRTOS에서 인터럽트에 의해 선점되면 안되는 중요한 로직을 실행하는 함수를 보호하는 방법이 있다.portDISABLE_INTERRUPTS() 기능1. 이 매크로는 전역적으로 시스템 전체에 모든 인터럽트를 비활성화한다.2. 시스템의 모든 마스킹 가능한 인터럽트를 비활성화한다.3. 이 함수를 호출하면 즉시 모든 인터럽트가 비활성화되어, 인터럽트 서비스 루틴(ISR)이 실행되지 않도록 한다. 주의 사항1. 모든 인터럽트를 비활성화하기 때문에, 시스템의 다른 기능들이 일시적으로 중단될 수 있다.2. 다른 인터럽트 기반 기능(예: 타이머, 통신 등)이 영향을 받을 수 있다.3. 인터럽트를 오랫동안 비활성화하면 시스템 응.. 2024. 9. 10.
RXFR 이벤트 상태비트 RXFR 이벤트 상태비트1. RXFR 이벤트 상태비트는 일반적으로 통신 시스템에서 수신 버퍼(Receive Buffer)와 관련된 상태를 나타내는 비트이다.2. 이 비트는 수신된 데이터가 처리되었거나 수신 버퍼가 특정한 상태에 있을 때 이를 알려주는 역할을 한다.3. 다양한 통신 프로토콜이나 마이크로컨트롤러에서 사용될 수 있으며, 구체적인 동작 방식은 시스템에 따라 다를 수 있다.RXFR 이벤트 상태비트의 주요 개념RX (Receive)RX는 "Receive"의 약자로, 데이터 수신과 관련된 모든 기능을 가리킨다.RXFR 상태비트는 수신 측에서 데이터가 버퍼로 들어왔을 때의 상태를 나타낸다. FR (Flag/Ready)FR은 Flag 또는 Ready를 의미할 수 있다.이는 특정 이벤트가 발생했음을 나타.. 2024. 9. 7.
CRC(Cyclic Redundancy Check) CRC(Cyclic Redundancy Check)란?1. CRC(Cyclic Redundancy Check)는 데이터 전송이나 저장 중에 발생할 수 있는 오류를 검출하기 위해 사용되는 강력한 오류 검출 코드이다.2. 주로 네트워크 통신, 디지털 저장 장치, 그리고 데이터 전송 시스템에서 데이터 무결성을 확인하는 데 사용된다. CRC의 주요 개념오류 검출 코드CRC는 데이터를 전송하거나 저장할 때, 전송된 데이터가 손상되었는지 확인하는 데 사용된다.데이터가 전송되기 전에 송신 측에서 CRC 값을 계산하고, 이 값을 데이터에 함께 전송한다.수신 측에서는 수신된 데이터로 다시 CRC를 계산하여, 송신된 CRC 값과 비교함으로써 오류를 검출한다. 다항식 기반CRC는 다항식 연산을 기반으로 한다.송신할 데이터를.. 2024. 9. 6.
비터비 디코더(Viterbi Decoder) 비터비 디코더(Viterbi Decoder)란?1. 비터비 디코더(Viterbi Decoder)는 디지털 통신에서 오류 정정을 위해 사용되는 알고리즘이다.2. 특히 컨볼루션 코드(Convolutional Code)로 인코딩된 데이터를 복호화(디코딩)하는 데 널리 사용된다.3. 이 디코더는 비터비 알고리즘(Viterbi Algorithm)을 기반으로 하며, 가장 가능성이 높은 원래 데이터 시퀀스를 찾아내는 역할을 한다.비터비 디코더의 주요 개념컨볼루션 코드컨볼루션 코드는 입력 데이터 스트림을 고정된 길이의 패턴(코드워드)으로 인코딩하는 방식이다.이는 데이터를 연속적인 방식으로 처리하며, 각 출력 비트는 여러 개의 입력 비트에 의존한다.이러한 방식은 데이터 전송 중 발생할 수 있는 오류에 대해 강력한 보호를.. 2024. 9. 5.
High Order Bit High Order Bit란?1. High Order Bit는 숫자를 표현할 때 가장 높은 위치의 비트를 의미한다.2. 이 비트는 주어진 비트 열에서 가장 높은 값의 자리수에 해당한다.3. 데이터의 크기나 부호를 결정하는 데 중요한 역할을 한다.High Order Bit의 개념위치가장 높은자리에 있는 비트가 High Order Bit이다.예를 들어, 8비트 숫자에서 비트는 0번 비트(가장 낮은 자리)부터 7번 비트(가장 높은 자리)까지 있다.이때 7번 비트가 High Order Bit이다.역할High Order Bit는 일반적으로 다음 두 가지 역할 중 하나를 수행한다. 부호 비트(Sign Bit)정수 표현에서, 특히 2의 보수 표현법을 사용할 때, High Order Bit는 숫자의 부호(양수/음수)를.. 2024. 9. 4.
리드 솔로몬 코드(Reed-Solomon Code) 리드 솔로몬 코드(Reed-Solomon Code)란?1. 리드 솔로몬 코드(Reed-Solomon Code)는 오류 정정을 위한 강력한 기법이다.2. 디지털 데이터의 전송 또는 저장 시 발생할 수 있는 오류를 감지하고 수정하는 데 널리 사용된다.3. 이 코드는 여러 개의 비트나 심볼로 이루어진 데이터 블록에서 일부 오류를 정정할 수 있도록 설계되었다.리드 솔로몬 코드의 주요 개념블록 코드리드 솔로몬 코드는 블록 코드의 일종으로, 고정된 길이의 데이터 블록을 처리한다.원래 데이터 블록에 추가적인 패리티(정정 비트 또는 심볼)를 더하여 오류 검출과 정정을 가능하게 한다. 심볼 기반리드 솔로몬 코드는 비트 대신 심볼 단위로 작동합니다. 각 심볼은 일반적으로 여러 비트(예: 8비트)를 포함한다.이 방식은 오류.. 2024. 9. 3.
패리티 비트(Parity Bit) 패리티 비트(Parity Bit)란?패리티 비트(Parity Bit)는 디지털 통신에서 오류 검출을 위해 사용되는 간단한 형태의 에러 검출 메커니즘이다.패리티 비트는 데이터 전송 중 발생할 수 있는 단일 비트 오류를 감지하는 데 주로 사용된다.패리티 비트의 동작 원리패리티 비트는 전송할 데이터에 추가되는 1비트의 값으로, 데이터 비트의 합계를 기반으로 설정된다.패리티 비트에는 짝수 패리티(Even Parity)와 홀수 패리티(Odd Parity) 두 가지 방식이 있다. 짝수 패리티(Even Parity)데이터 비트 중 1의 개수가 짝수일 때, 패리티 비트는 0으로 설정된다.데이터 비트 중 1의 개수가 홀수일 때, 패리티 비트는 1로 설정된다.결과적으로, 전체 비트(데이터 비트 + 패리티 비트)의 1의 개.. 2024. 9. 2.
반응형