Compiler & Linker
교차 개발 툴
- 크로스 컴파일러(Cross Compiler)
- x86 계열 호스트에서 소스 프로그램을 컴파일하여 빌드 호스트와 다른 프로세서용
기계어를 생성하는 프로그램
- 예
- ARM Cross Compiler : ARM Processor 용 binary 생성 툴
- Xtensia Cross Compiler : Xtensia Processor 용 binary 생성 툴
- 교차 개발 환경 구성 요소
- 크로스 컴파일러/툴체인
- 디버거, 에디터 등
- 통합개발환경(IDE)
GNU ARM 교차 툴
교차 개발 툴의 활용
오브젝트 파일의 자료 구조
- 오브젝트 파일
- 컴파일러, 어셈블러 및 링커에 의해 생성
- 명령어와 다양한 데이터로 구성
- 오브젝트 파일의 종류
- 재배치 가능한 오브젝트 파일(relocatible file)
- 실행 가능한 오브젝트 파일(executible file)
- 공유 오브젝트 파일(shared object file)
- 오브젝트 파일의 형식
- COFF(Common Object File Format)
- ELF(Executable Linkable Format)
오브젝트 파일 생성
실행 가능한 오브젝트 파일의 구조
- 헤더 : 섹션을 설명
- 섹션
- 텍스트 섹션 : 모든 코드
- 데이터 섹션 : 초기화된 전역 변수 및 초기값
- BSS 섹션 : 초기화되지 않은 전역 변수
- BSS : Block Started By Symbol)
- 심볼 테이블
- 스트링 테이블
- 심볼 테이블의 이름을 문자로 가지고 있는 테이블
- 섹션 이름 테이블
- 디버그 테이블
- 디버깅 정보를 가지는 테이블
함수의 레지스터와 메모리 사용 (ARM의 경우)
ELF 파일과 바이너리 파일
- ELF(Executable ELF) 파일
- 링크를 완료한 후에 생성된 실행 가능한 파일
- 헤더, 섹션 및 테이블을 포함한다.
- 리눅스 애플리케이션을 ELF 파일을 사용하여 실행
- 펌웨어, 부트로더 및 OS 커널을 개발하는 경우
- 디버거를 사용하는 경우 ELF 파일을 사용
- ROM 또는 플래시 메모리에 탑재하는 경우 바이너리 파일 사용
- 바이너리(Binary, Plane Binary) 파일
- ELF 파일에서 헤더 정보 및 테이블 정보를 제거한 후 텍스트 섹션과 데이터 섹션만을 포함
- 펌웨어, 부트로더 및 OS 커널을 메모리에 탑재하여 실행
- 파일 형식 변환
링커와 로케이터
- 링커
- 불완전한 오브젝트 파일들을 합쳐 새로운 독립형 오브젝트 파일을 생성해내는 도구
- 로케이터(Locator)
- 메모리에서 실행이 가능하도록 코드와 데이터를 배치
- 대부분은 링커에 포함
메모리 배치 정보
- 메모리 배치 정보 지정
- 간단한 메모리 배치의 경우 링커의 명령 옵션으로 지정하여 사용
- 복잡한 메모리 배치의 경우 별도의 배치 정보를 지정하는 파일을 사용
- Linker Script(링커 스크립트) 파일 : GNU 툴
- GNU 링커 스크립트 구현 예
IoT와 통신 기술
인터넷을 기반으로 모든 사물을 연결하여 사람과 사물,
사물과 사물간의 정보를 상호 소통하는
지능형 기술 및 서비스
기능화 + 상호연결 + 지능화 = IoT
Internet-of-Things 요소 기술
Network in IoT
- 경우에 따라 Gbps이상의 전송 지원
- 저전력 기반의 근거리통신 기술
- 특정 장소에서의 안내서비스, 정교한 위치정보, 메시지 및 쿠폰전송, 모바일 결제 등
- Wi-Fi, Bluetooth, Zigbee, RFID/NFC, Z-WAVE, LTE-MTC, LPWAN
Wi-Fi 통신
Wi-Fi 개요
- 근거리 무선통신 기술로 초기에는 인터넷의 활성화로 노트북과 일부 산업용 장비들에서 지원하였으나 최근 스마트기기를 중심으로 개인용 휴대장치까지 사용이 확대
- IEEE 802.11기반의 무선랜 연결과 장치 간 연결(와이파이 P2P), PAN/LAN/WAN 구성 등을 지원
- 와이파이를 지원하는 장치들은 와이파이 AP(Access Point)혹은 와이파이 핫스팟(Hot Spot)을 통해서 인터넷에 접속
- 최근에 개발되고 있는 와이파이 표준 중에서는 3.6GHz나 60GHz대역을 사용하는 표준도 있으나 일반적으로 우리가 사용하는 와이파이는 IEEE 02.11b/g/n표준으로 2.4GHz대역 혹은 5GHz 비면허 대역을 이용
Wi-Fi 표준 대역폭
Wi-Fi 대역 및 표준 확장
- 2009년 IEEE 802.11n을 이은 IEEE 802.11ac는 5GHz비면허 대역에서 약 1Gbps이상 (최대 전송속도 6.9Gbps)의 데이터 전송 속도를 지원
- 최근 TV화이트스페이스 대역과 900MHz대역을 새로이 무선랜에 도입함으로써 전송거리를 1km내외까지 확장시키는 IEEE 802.11af, IEEE 802.11ah기술이 활발히 진행
Wi-Fi 채널
- 와이파이 기술이 주로 이용하는 2.4GHz ISM대역(IEEE 802.11b/g/n해당)은 2,400~2,483GHz
- 83MHz의 대역에 한 개의 채널폭이 20혹은 22MHz인 채널들을 5MHz간격으로 배치를 하게 되면 13개의 채널을 이용
Wi-Fi 보안
- 다양한 공격 유형
- 전파수집, 불법접속, 중간자공격 등을 통한 사용자 주요 정보 유출과 전파교란
- 다량의 패킷전송을 이용한 서비스 거부 공격
- WEP등 취약한 보안설정을 해킹해 불법 접속 및 내부 망으로 침투
- Wi-Fi 보안 문제 발생 원인
- 무선 네트워크 접속 시 인증 과정에서의 문제점과 무선 전송데이터의 암호화 취약점으로 구분
- Wi-Fi 보안 강화
- 기업환경 등 중요정보를 취급하는 장소에서 무선랜 이용은 WIPS등 전문 무선 보안시스템 도입이 필요
802.11ad
- IEEE 802.11ad 규격
- 와이기그(WiGig)라는 이름으로도 불리며 60GHz 대역의 고주파를 사용 (기존의 802.11 표준들이 2.4GHz나 5GHz 대역 사용)
- 현재 많이 사용하는 무선랜 보다 10배 빠른 초당 7기가비트(Gbps)의 속도
- TV와 스마트폰 등 각종 기기를 연결할 차세대 무선통신 표준
Network supports in ESP32
- ESPRESSIF사의 ESP32-WROOM
- Wi-Fi와 Bluetooth가 통합된 ESP32 SoC 적용
- Wi-Fi(2.4GHz, 802.11 b/g/n) 지원
- Bluetooth v4.2 BR/EDR & BLE 지원
Wi-Fi Features in ESP32
- 802.11 b/g/n
- 802.11 n (2.4 GHz), up to 150 Mbps
- WMM (WiFi Multimedia)
- TX/RX A-MPDU, RX A-MSDU
- A-MSDU : Aggregate MAC Service Data Unit
- Immediate Block ACK
- Defragmentation
- Automatic Beacon monitoring (hardware TSF)
- 4 × virtual Wi-Fi interfaces
- Antenna diversit
Bluetooth 통신
Bluetooth
- 저전력 소모로 근거리 송수신기를 모바일 디바이스(Mobile device)에 직접 또는 PC 카드와 같은 어댑터를 통해 탑재되어 무선 환경을 제공해 주는 통신 규격
- 전역 주파수 대역 2.45GHz band 이용, 721kbps 데이터 전송 속도와 3개의 음성 채널 지원
- 어드버타이징 채널 3개, 데이터 채널 37개(BLE), Classic(79채널)
- 전력 소모량이 30micro amps인 ‘대기모드’에서부터 3~30milli amps 범위의 전송량이 많은 장
치에 이르기까지 다양한 제품을 대상
- 멀티페어링(다중 페어링), 멀티포인트(다중 연결) 기술 제공
Bluetooth 구성
- Bluetooth 구성 요소
- 하드웨어 : 블루투스 라디오(Radio Frequency) 단위, 블루투스 기저대역단위
- 소프트웨어 : 블루투스 프로파일
- Bluetooth 구성 단위
- 1) 라디오 단위
- 송신기(transmitter)와 수신기(receiver)로 구성
- 송신기는 RF 신호를 보내는 역할을 하고, 수신기는 RF신호를 받는 역할
- 최대 주파수 호핑률은 1,600hops/s이며 보통의 링크 범위는 10cm에서 10m까지지만, 전송 전력을 올리면 100m까지 확장
- 2) 기저대역단위
- 플래시메모리와 CPU를 포함하는 하드웨어, 라디오 단위와 호스트 기기 I/F
- 저대역 프로토콜은 FHSS(주파수 도약 확산 대역)기술을 이용해 회선교환(circuit-switched) 방식과 패킷교환(packet switched)방식 두 가지를 모두 지원
- 3) 프로파일
- 기기 상호간의 호환성을 위해 마련된 것으로 블루투스 장치가 어떤 종류의 데이터를 보내는지 명확하게 정의하고 블루투스의 기본 표준 위에 더해진 프로토콜
- 호환성을 갖기 위해서는 두 장치간의 두 프로파일을 모두 지원
Bluetooth profiles
- Serial Port Profile (SPP)
- Serial communication interface( RS-232 or a UART)를 무선으로 대체
- 두 장치는 RX, TX 라인이 마치 유선으로 연결된 것처럼 데이터를 주고 받을 수 있다.
- Human Interface Device (HID)
- Bluetooth를 이용한 사용자 입력장치에 사용
- 키보드, 마우스, 조이스틱, 비디오 게임 컨트롤러 등에 주로 사용
- Hands-Free Profile (HFP) and Headset Profile (HSP)
- Bluetooth 이어폰 등에 사용되는 프로파일
- HFP 의 경우는 차량의 hands-free 오디오 시스템에 사용
- HFP는 일반적인 폰 Interaction (전화 수신/거절, 종료 등) 지원하기 위한 내용들이 포함
- Advanced Audio Distribution Profile (A2DP)
- Bluetooth 장치간 오디오를 전송하기 위한 프로파일.
- HFP, HSP 는 오디오를 양방향으로 전송하지만 A2DP 는 단 방향으로만 전송
- 대신 오디오의 음질이 좋다.
- A/V Remote Control Profile (AVRCP)
- Bluetooth 장치를 무선으로 제어하기 위한 프로파일.
- 오디오 플레이어를 무선으로 제어가 가능하도록 하기 위해 A2DP 프로파일과 함께 지원
Bluetooth versions
- Beacon
- 블루투스 4.0을 기반으로 사물인터넷에 적합한 블루투스의 새로운 근거리 무선통신 장치
- 최대 70m이내의 장치들과 교신 가능하고, 5~10cm단위의 구별이 가능할 정도의 높은 정확성
- 사용 예
- 비콘 단말이 발신하는 특정 ID값을 통해 스마트폰 위치를 확인하고 확인된 위치에서의 설정된 서비스(메시지, 쿠폰 등)를 스마트폰으로 전송해 주는 방식
- Bluetooth 5.0
- '근거리' 무선 기술 표준에서 '중거리' 무선 기술 표준으로 변화
- Bluetooth 4.2보다 데이터 전송범위가 4배(최대 350m, 유효범위 80미터 이내)
- 최대 50Mbps(초당 6.2MB), 기존대비 2배(BLE 1Mbps)
Bluetooth 기술 개요
- Bluetooth 주소
- 고유한 48-bit(6bytes) 주소를 가지며 항상 12자리로 표시
- 상위 코드는 제작사를 의미하며 하위코드는 장치의 고유값을 의미
- Master-Slave 형태로 동작
- 하나의 Master 장치가 다수의(7개까지) Slave 장치와 연결
Bluetooth Features in ESP32
• Bluetooth v4.2, BLE
• Class-1, Class-2, Class-3
• +12 dBm transmitting power
• NZIF receiver with –97 dBm BLE sensitivity
• Adaptive Frequency Hopping (AFH)
• Standard HCI based on SDIO/SPI/UART
• High-speed UART HCI, up to 4 Mbps
• Bluetooth 4.2 BR/EDR BLE dual mode controller
• Synchronous Connection-Oriented/Extended (SCO/eSCO)
• CVSD and SBC for audio codec
• Bluetooth Piconet and Scatternet
• Multi-connections in Classic BT and BLE
• Simultaneous advertising and scanning
기타 IoT 통신 기술
Zigbee
- 저전력, 저가격 및 하드웨어 구성이 간단한 무선통신 시스템 규격
- IEEE 802.15.3 기반으로 저전력과 저가격을 목표로 저속 근거리 개인 무선통신의 국제 표준 스펙
- 전력소모가 적고 칩가격이 저렴하며 통신의 안정성이 높아 최근 IoT에서도 다양하게 활용
- IEEE 802.15.4 표준의 물리 PHY 와 매체접근제어 MAC 계층 위에 그 상위계층으로 네트워크 (NWK)계층, 응용지원(APS)계층과 보안(Security) 및 응용(APL)을 규격
Z-Wave
- Z-Wave는 Zensys와 Z-Wave 얼라이언스에서 개발한 무선 통신 프로토콜
- 무선 통신 프로토콜로 가정 자동화와 센서 네트워크와 같은 저전력과 저대역폭을 요구하는 장치를 위해 설계
- 대역폭 : 9600 bit/s or 40 kbit/s 에서 상호 정보 교환 가능
- 조절 : GFSK (Gaussian Frequency-Shift Keying)
- 범위 : 방해없는 환경에서 약 22.5m, 최적의 환경에서 9m
- 주파수 대역 : 900 MHz ISM 대역 사용
919.7 Mhz, 921.7 Mhz, 923.1 Mhz (Kor)
- 전력 제한 : 1mW
LPWAN
- LPWAN(Low Power Wide Area Network)는 이동통신 네트워크를 활용하여 사물인터넷 서비스를 제공
- 저전력 소모 설계, 저가 장비 공급, 낮은 구축비용, 안정적 커버리지 제공, 대규모의 단말기 접속
구현 등이 핵심설계 요구 사항으로 고려
- LTE-MTC(LTE Machine-Type Communication)
- 이동통신 네트워크를 활용하여 사물인터넷 서비스를 제공
- NB-IoT
- LTE인프라를 활용해 더 낮은 소비전력으로 우수한 커버리지를 확보하는 기술
- Lora
- LTE-M보다 속도는 느리지만 전력소모가 적어 10년 이상의 배터리 수명 가능
- 900Mhz대 주파수를 사용
- 굴절 및 회절도가 높아 수신 감도가 뛰어나며 통신 범위는 도심지역 기준 반경 2~15km, 교외 최대 30km, 지하 및 실내에서는 1~3km 수준으로 LTE-M의 최대 5~11km보다 넓다.
- 전송속도는 250bps에서 최대 50Kbps으로 원격검침 및 모니터링 등에 충분한 성능
- LTE-M
- 장점
- 기존 LTE망을 활용한 전국망 구축 가능
- 면허 대역 주파수로 서비스 품질 확보
- 표 준기술 기반의 서비스 영속성 확보
- LTE 수준의 보안성 제공
- 단점
- 비싸고 복잡한 칩 및 모듈
- 전력소모가 상대적으로 높음
- USIM 기반으로 개통 절차
- LoRa
- 장점
- 저렴하고 단순한 칩 및 모듈
- 저전력으로 배터리 수명 최대 10년 가능
- ID 기반 인증으로 개통 절차 단순
- 기존 통신사 기지국에 간단히 설치 가능
- 단점
- 신규망 구축 필요
- 비면허대역 주파수로 간섭 우려
- 비표준 기술로 서비스 시장 우려 제기