임베디드 시스템과 SPI와 같은 통신 프로토콜에서 Polling은 데이터를 읽을 준비가 되었는지 등 조건이 충족되었는지 확인하기 위해 하드웨어 레지스터나 플래그를 지속적으로 확인하는 작업을 포함한다. Polling은 간단한 접근 방식이지만, 특히 리소스가 제한적이거나 단일 코어 시스템에서는 한계가 있는 것이 사실이다.Polling과 Polling이 시스템 성능에 미치는 영향, 그리고 멀티코어 시스템이 이러한 한계를 완화하는 데 어떻게 도움이 되는지 알아보자. Polling in SPI and General CaseSPI 예제에서 Polling은 "data ready" 플래그 (예: SPI_SR_RXNE)가 설정될 때까지 status register를 반복적으로 읽음으로써 데이터가 완전히 수신되었는지 확..
마이크로 컨트롤러와 주변 장치 (peripheral devices) 간의 연결 및 통신을 위해 널리 사용되는 통신 프로토콜인 CAN (Controller Area Network), SPI (Serial Peripheral Interface) 와 I2C (Inter-Integrated Circuit) 에 대해 알아보자.CAN (Controller Area Network): CAN 은 자동차, 산업 및 의료용 애플리케이션에 여러 장치를 연겨랗기 위해 자주 사용되는 강력한 저속 통신 프로토콜이다. 특히 열악한 환경에서의 신뢰성으로 잘 알려져 있다.FeaturesMulti-Master Capability: bus가 여유가 있을 때 네트워크의 모든 디바이스가 메시지를 보낼 수 있다.Broadcast Communi..
이전 포스팅에 이어 SPI 에 좀 더 알아보자. SPI_receive (uint8_t received_data = 0xAB; ) 는 앞선 예제에서 데모용으로 사용된 placeholder 다. 실제 SPI_receive 구현에서 수신된 데이터는 고정된 값이 아니며 이러한 방식으로 하드코딩되지 않는다. 대신 SPI_receive 는 SPI 데이터 레지스터 또는 SPI 전송이 발생할 때 자동으로 채워지는 하드웨어 버퍼에서 읽는다. 실제 구현에서 일반적으로 작동하는 방식은 아래와 같다. SPI Registers or BUffers: SPI 마스터가 SPI_send 를 통해 데이터를 전송하면 클록 신호가 MOSI 라인을 통해 데이터를 전송하고 동시에 MISO 라인에서 들어오는 데이터를 전송한다. 슬레이브로부터 도..
{{ form.as_p }} 구문은 form의 각 field를 해당 입력 field가 포함된 (paragraph, 단락) 요소로 자동 렌더링하는 Django 템플릿 태그이다. 이는 각 field에 대해 수동으로 HTML을 작성하지 않고도 form을 렌더링할 수 있는 편리한 방법이다. 하지만 {{ form.as_p }} 은 form을 빠르게 렌더링하는 데 유용한대신 여기에는 필요한 사용자 정의가 부족할 수 있다. 각 field를 수동으로 정의하면 표시 및 동작을 더 잘 제어할 수 있다. 다음은 작동 방식과 예상대로 작동하지 않을 수 있는 몇 가지 잠재적인 이유다: What {{ form.as_p }} DoesPurpose: {{ form.as_p }} 는 양식의 form fields에 대한 HTML을 생..
- Total
- Today
- Yesterday
- 이코노미스트
- 머신 러닝
- socket programming
- 투 포인터
- Computer Graphics
- vertex shader
- 오블완
- Hash Map
- Python
- The Economist
- C++
- 안드로이드
- Android
- 파이썬
- defaultdict
- leetcode
- tf-idf
- min heap
- 딕셔너리
- 이코노미스트 에스프레소
- I2C
- ml
- machine learning
- 티스토리챌린지
- The Economist Espresso
- DICTIONARY
- join
- 리트코드
- java
- 소켓 프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |