본문 바로가기

분류 전체보기29

마모 균등화 EEPROM과 플래시 메모리는 비휘발성 메모리로 이러한 메모리들은 쓰기/지우기 횟수에 제한이 있어, 일정 횟수를 초과하면 더 이상 데이터를 안전하게 기록할 수 없게 됩니다.마모 균등화는 이러한 문제를 해결하여 메모리의 수명을 연장하는 기술입니다. 마모 균등화란마모 균등화는 플래시 메모리와 EEPROM과 같은 비휘발성 메모리에서 쓰기/지우기 사이클을 고르게 분산시켜 특정 블록이 과도하게 사용되는 것을 방지하는 기법입니다. 이렇게 함으로써 모든 블록이 고르게 사용되기 때문에, 특정 블록의 조기 손상을 방지하고 메모리 전체의 수명을 연장할 수 있습니다. 상황블록 A: 유효 데이터 80%, 일부 데이터를 업데이트하려면 공간 부족.블록 B: 비어 있음.스왑 이유블록 A의 유효 데이터를 블록 B로 복사.새로운 데이.. 2024. 12. 2.
memcmp memcmp는 두 메모리 블록을 비교하여 그 차이를 반환하는 함수입니다. 주로 데이터 일치 여부를 확인하거나 메모리 내 특정 패턴을 찾는 데 사용됩니다.int memcmp(const void *ptr1, const void *ptr2, size_t num);ptr1 & ptr2 : 비교하고자 하는 두 메모리 블록의 포인터입니다.num : 비교할 바이트 수 입니다.반환값 : 두 메모리 블록이 같으면 0, ptr1이 ptr2보다 크면 양수, 작으면 음수를 반환합니다. 사용 예시#include #include int main() { char data1[] = "Hello, World!"; char data2[] = "Hello, C!"; int result = memcmp(data1, data.. 2024. 11. 13.
시리얼라이제이션 기법(임베디드) 시리얼라이제이션은 데이터를 전송 가능한 형태로 변환하는 과정을 의미한다.임베디드 시스템에서는 16비트 이상의 큰 데이터를 처리할 수 없는 경우 이를 두 개의 8비트로 나누어 전송하거나 저장하는 방식을 사용한다. 16비트를 8비트로 나누기#include #include int main() { // 16비트 값 uint16_t value = 0xABCD; // 16비트 값을 상위 바이트와 하위 바이트로 나눔 uint8_t highByte = (value >> 8) & 0xFF; // 상위 바이트 추출 uint8_t lowByte = value & 0xFF; // 하위 바이트 추출 // 상위 바이트와 하위 바이트 출력 printf("Original 16-.. 2024. 11. 4.
나이퀴스트 이론(Nyquist frequency) 디지털 신호 처리에서, 아날로그 신호를 디지털로 정확하게 변환하기 위해 필요한 최소 표본화 주파수를 정의하는 이론이다.아날로그 신호를 디지털 로 변환 할 때, 표본화 주파수가 원래 신호의 최고 주파수의 두 배 이상이 되어야 신호를 정확하게 재구성할 수 있다. 만약 주파수가 10kHz인 오디오 신호를 디지털화 할 때 나이퀴스트 이론에 따라 20kHz 이상이 표본화 수파수로 샘플링 하여야 원래 신호를 왜곡없이 디지털로 변환할 수 있다.샘플링 주기가 원래 신호의 주파수 보다 느리거나 같다면 샘플링 할 떄 급격한 값의 변화를 받을 수 있다. 2024. 10. 28.