top of page
포트웰코리아_톡상담아이콘

포트웰, PET API 소개

  • 작성자 사진: Paul Yi
    Paul Yi
  • 4월 7일
  • 5분 분량

제공된 "Portwell Engineer Toolkit.pdf" 출처는 하드웨어 제어 애플리케이션 코딩을 지원하기 위해 Portwell에서 제공하는 PET (Portwell Engineering Toolkit)에 대해 자세히 설명합니다(이 25). 더 큰 맥락에서 볼 때, 이는 임베디드 시스템 개발에서 하드웨어와 소프트웨어 간의 상호 작용을 단순화하고 개발 시간을 단축하기 위한 일반적인 접근 방식입니다.


출처에 따르면, PET의 주요 기능은 사용자가 하드웨어를 제어하는 애플리케이션을 코딩할 때 도움을 제공하는 것입니다(이 25). Portwell은 고객을 위해 PET API (Application Programming Interface) 라이브러리라는 일련의 API를 출시하여 어려운 작업을 미리 처리했습니다(이 25).



Portwell PET개괄
Portwell PET개괄

PET API 라이브러리는 소프트웨어 애플리케이션을 구축하기 위한 루틴, 프로토콜 및 도구 세트인 API를 제공합니다(이 26). 이 API는 모든 빌딩 블록을 제공함으로써 프로그래밍을 더 쉽게 만들어 개발자가 블록을 함께 배치하기만 하면 됩니다(이 26). PET는 사용자 친화적인 API 세트를 제공하여 개발 속도를 높이고 Portwell 플랫폼 보드에 부가 가치를 제공합니다(이 26). PET는 개발자와 솔루션 간의 촉매 역할을 하여 임베디드 플랫폼을 고객의 자체 애플리케이션과 더 쉽고 간단하게 통합할 수 있도록 합니다(이 26).

PET는 Windows 10, Windows 11 및 Linux 운영 체제를 지원합니다(이 26, 29).


출처는 또한 PET API 함수를 기반으로 하는 크로스 플랫폼 GUI(Graphical User Interface)인 Portwell Engineering Tool Utility에 대해서도 설명합니다(이 42). 이 유틸리티는 Windows 및 Linux 시스템과 호환성이 좋으며 설치 없이 실행할 수 있는 독립적인 프로그램입니다(이 42).



포트웰, PET API 기본 지식
포트웰, PET API 기본 지식


"Anticipatory Knowledge" 섹션에서는 PET 라이브러리를 사용하여 하드웨어를 작동하는 데 필요한 기본 지식을 제공합니다(이 33). 여기에는 워치독 타이머(Watch dog timer), GPIO(General Purpose Input Output), SMBus(System Management Bus) 및 I2C(Inter-IC)에 대한 설명이 포함됩니다(이 6, 7). 이러한 기본 개념에 대한 이해는 개발자가 PET API를 효과적으로 사용하는 데 중요합니다.


PET 라이브러리 문서 섹션에서는 다양한 하드웨어 기능을 제어하고 측정하기 위한 많은 애플리케이션 함수 코드를 제공합니다(이 47, 51). 각 API 함수는 선언, 프로토타입, 매개변수, 반환 값 및 샘플 코드를 포함하여 자세히 설명되어 있습니다(이 66). 제공된 API는 다음과 같은 다양한 하드웨어 기능을 다룹니다.


  • 초기화 API: PET API 라이브러리를 초기화하고 해제하는 기능(이 52, 66, 67).

  • 보드 정보: 보드 이름, BIOS 및 EC 버전을 얻는 기능(이 53, 70, 71).

  • GPIO 포트: GPIO 핀의 방향을 설정하고 읽고 쓰고, 총 GPIO 세트 및 핀 수를 얻는 기능(이 54, 72-85).

  • 워치독 타이머: 워치독 타이머가 사용 가능한지 확인하고, 범위를 얻고, 구성을 설정/얻고, 트리거하고 비활성화하는 기능(이 57, 86-92).

  • 하드웨어 모니터: CPU 및 시스템 온도, 팬 속도, 전압을 읽고, 팬 속도를 설정하고, 스마트 팬 기능을 제어하고, 비프음을 설정하는 기능(이 58, 92-111).

  • SMBus: SMBus를 사용할 수 있는지 확인하고, 바이트/워드 데이터를 읽고/쓰고, 프로세스 콜, 블록 전송, EEPROM 읽기/쓰기 기능을 제공(이 59, 111-122).

  • 백라이트 제어: LVDS 밝기를 변경하는 기능(이 62, 122).

  • 기본 I/O 액세스: 직접 레지스터 액세스를 위한 바이트/워드/더블워드 읽기/쓰기 및 MSR 읽기 기능(이 63, 136-142).

  • EC I2C: 임베디드 컨트롤러를 통한 I2C 통신 기능(주파수 설정, 바이트/워드 주소 읽기/쓰기, 바이트 송수신, 퀵 읽기/쓰기)(이 64, 123-136).

  • LED 제어: LED 상태를 얻고 설정하는 기능(이 142-145).

  • LAN 바이패스: LAN 바이패스 기능 모드를 설정 및 가져오고, 워치독 타이머를 트리거 및 비활성화하는 기능(이 145-154).



포트웰, PET API function list
포트웰, PET API function list


PET API 함수의 반환 값은 UCHAR 데이터 유형이며, 성공 또는 다양한 오류 조건(드라이버 문제, 지원되지 않는 플랫폼, 잘못된 매개변수 등)을 나타내는 코드를 제공합니다(이 50, 51).


마지막으로, FAQ 섹션에서는 Portwell 보드에서 "error code 10"을 해결하는 방법과 "MSVCP140.dll not found" 오류를 해결하는 방법, 그리고 PETAPI와 eAPI의 차이점을 설명합니다(이 99, 155). eAPI는 PICMG®에서 릴리스한 COM Express®용 공통 API 표준으로, PET API는 Portwell 보드 기능에 완벽하게 맞도록 Portwell에서 정의한 API 도구입니다(이 155).


요약하자면, 이 출처는 Portwell 하드웨어를 제어하는 애플리케이션 개발을 지원하기 위해 포괄적인 API 라이브러리 및 유틸리티를 제공하는 PET를 소개합니다. 이는 개발자가 하드웨어 세부 사항에 대한 깊은 이해 없이도 Portwell 플랫폼의 기능을 활용할 수 있도록 하여 임베디드 시스템 개발 프로세스를 간소화하는 데 중요한 역할을 합니다. 더 넓은 맥락에서 이는 하드웨어-소프트웨어 인터페이스를 추상화하고 개발 생산성을 향상시키기 위한 임베디드 시스템 개발 분야의 일반적인 전략과 일치합니다.




Conversation of Portwell's PET Toolkit API




### Portwell Engineering Toolkit (PET) FAQ


1. PET(Portwell Engineering Toolkit)란 무엇이며, 주요 기능은 무엇입니까?


PET는 Portwell에서 하드웨어 제어를 필요로 하는 어플리케이션 개발을 돕기 위해 제공하는 엔지니어링 툴킷입니다. 주요 기능은 Portwell 하드웨어의 다양한 기능을 제어하고 모니터링할 수 있는 API(Application Programming Interface) 라이브러리를 제공하는 것입니다. 이를 통해 사용자는 하드웨어 레벨의 프로그래밍에 대한 부담을 줄이고, Portwell 보드의 기능들을 쉽게 활용할 수 있습니다. PET는 GPIO 제어, 워치독 타이머 관리, 하드웨어 모니터링 (온도, 전압, 팬 속도 등), SMBus 통신, I2C 통신, 저수준 I/O 접근, LED 제어, LAN 바이패스 기능 제어 등 다양한 하드웨어 기능을 위한 API를 제공합니다.


2. PET API 라이브러리는 어떤 운영체제를 지원하며, 어떻게 사용해야 합니까?


PET API 라이브러리는 Windows (Windows 10, Windows 11)와 Linux (Ubuntu 20.04, CentOS 7) 운영체제를 지원합니다. Linux 시스템에서는 "Static" 라이브러리와 "Dynamic" 라이브러리 두 가지 형식을 제공합니다. Static 라이브러리는 헤더 파일을 직접 포함하고 Makefile을 사용하여 빌드할 수 있으며, Makefile은 자동으로 라이브러리를 컴파일 및 링크하여 실행 파일을 생성합니다. Dynamic 라이브러리는 Linux 사용자 라이브러리 폴더에 설치해야 하며, "make install" 명령을 사용하여 설치합니다. Windows에서는 해당 운영체제에 맞는 라이브러리(PET.dll 또는 PETx64.dll)를 사용하여 개발할 수 있습니다. PET API 함수를 호출하기 전에 `PET_API_Init()` 함수를 호출하여 라이브러리를 초기화해야 합니다.


3. PET 유틸리티는 무엇이며, 어떤 환경에서 사용할 수 있습니까?


PET 유틸리티는 PET API 함수를 기반으로 하는 크로스 플랫폼 GUI(Graphical User Interface) 도구입니다. Windows 및 Linux 시스템과 호환성이 좋으며, 별도의 설치 없이 실행 가능한 독립적인 프로그램입니다. PET 유틸리티는 Portwell BIOS를 지원하는 다양한 Portwell 보드에서 사용할 수 있으며, Windows, Ubuntu 20.04, CentOS 7 운영체제 환경을 지원합니다. 시스템 정보 확인, GPIO 제어, 워치독 타이머 설정 등 PET API가 제공하는 주요 기능들을 GUI 환경에서 쉽게 사용할 수 있도록 합니다. Windows에서는 관리자 권한으로, Linux에서는 root 권한으로 실행해야 합니다.


4. GPIO(General Purpose Input/Output) 기능은 PET를 통해 어떻게 제어할 수 있습니까?


PET API는 GPIO 포트를 제어하기 위한 다양한 함수를 제공합니다. `PET_GPIO_TotalSet()` 함수를 사용하여 보드의 총 GPIO 그룹 수를 확인할 수 있고, `PET_GPIO_TotalNumber()` 함수로 특정 GPIO 그룹에서 사용 가능한 핀 수를 알 수 있습니다. 각 GPIO 핀의 방향을 설정하기 위해 `PET_GPIO_SetDirection()` (전체 그룹 방향 설정) 또는 `PET_GPIO_SetPinDirection()` (개별 핀 방향 설정) 함수를 사용할 수 있습니다. 핀의 상태를 읽기 위해서는 `PET_GPIO_Read()` (전체 그룹 상태 읽기) 또는 `PET_GPIO_ReadPin()` (개별 핀 상태 읽기) 함수를 사용하며, 핀의 상태를 쓰기 위해서는 `PET_GPIO_Write()` (전체 그룹 상태 쓰기) 또는 `PET_GPIO_WritePin()` (개별 핀 상태 쓰기) 함수를 사용합니다. 또한, `PET_GPIO_ReadDirection()` 및 `PET_GPIO_ReadPinDirection()` 함수를 통해 현재 핀의 방향 설정을 읽을 수 있습니다.


5. 워치독 타이머(Watch Dog Timer)는 PET API를 통해 어떻게 활용할 수 있습니까?


워치독 타이머는 시스템이 멈추거나 응답하지 않을 때 자동으로 시스템을 재부팅하여 정상 상태로 복구하는 데 사용됩니다. PET API는 워치독 타이머의 사용 가능 여부를 확인하는 `PET_WDT_Available()`, 타이머의 최소 및 최대 설정 범위를 얻는 `PET_WDT_GetRange()`, 타이머의 타입 (초 또는 분 단위)과 시간 초과 값을 설정하는 `PET_WDT_SetConfig()`, 현재 워치독 타이머 설정을 얻는 `PET_WDT_GetConfig()`, 워치독 타이머를 리셋하여 카운트다운을 다시 시작하는 `PET_WDT_Trigger()`, 그리고 워치독 타이머를 비활성화하는 `PET_WDT_Disable()` 함수를 제공합니다. 사용자는 `PET_WDT_SetConfig()` 함수로 시간 초과 값을 설정한 후, 주기적으로 `PET_WDT_Trigger()` 함수를 호출하여 시스템이 예상치 않게 멈추는 경우 자동으로 재부팅되도록 구성할 수 있습니다.


6. 하드웨어 모니터링 기능은 PET API를 통해 어떤 정보를 제공하며, 어떻게 사용할 수 있습니까?


PET API는 CPU 및 시스템 온도, 전압, 팬 속도 등 Portwell 보드의 다양한 하드웨어 상태 정보를 모니터링하는 기능을 제공합니다. `PET_HWM_CPUTemperature()`, `PET_HWM_SysTemperature()`, `PET_HWM_Temperature()` 함수를 사용하여 현재 온도를 읽을 수 있으며, `PET_HWM_GetVoltage()` 함수를 통해 다양한 전압 센서의 값을 확인할 수 있습니다. 팬 속도는 `PET_HWM_GetFanSpeed()` 함수를 사용하여 읽을 수 있습니다. 또한, `PET_HWM_SetBeep()` 함수를 사용하여 특정 주파수와 지속 시간으로 Beep 알람을 발생시킬 수 있습니다. 이러한 모니터링 기능을 통해 사용자는 시스템의 상태를 실시간으로 파악하고, 온도 상승 시 팬 속도를 조절하는 등의 대응을 프로그래밍적으로 구현할 수 있습니다.


7. SMBus 및 I2C 통신은 PET API를 통해 어떻게 수행할 수 있습니까?


PET API는 SMBus 통신을 위해 다양한 함수를 제공합니다. `PET_SMBus_Available()` 함수로 SMBus 사용 가능 여부를 확인하고, `PET_SMBus_ByteData()`, `PET_SMBus_WordData()`, `PET_SMBus_ProcessCall()`, `PET_SMBus_Block()` 함수를 사용하여 바이트, 워드 단위 데이터 읽기/쓰기, 프로세스 콜, 블록 데이터 전송 등의 SMBus 통신을 수행할 수 있습니다. 또한, EEPROM 접근을 위한 `PET_SMBus_Read_EEPROM()` 및 `PET_SMBus_Write_EEPROM()` 함수도 제공됩니다. I2C 통신과 관련된 함수들은 EC(Embedded Controller)를 통해 접근하는 경우를 위해 제공되며, `PET_EC_IIC_Byte_Addr_Read()`, `PET_EC_IIC_Byte_Addr_Write()`, `PET_EC_IIC_Word_Addr_Read()`, `PET_EC_IIC_Word_Addr_Write()` 등의 함수를 사용하여 특정 주소의 데이터를 읽고 쓸 수 있습니다.


8. Portwell 보드 사용 중 "error code 10"이 발생했을 경우 어떻게 해결해야 합니까?


Portwell 보드에서 "error code 10"이 발생하는 경우, Windows 운영체제에서는 해당 프로그램을 관리자 권한으로 실행해야 합니다. Linux 운영체제에서는 root 권한으로 실행해야 합니다. 만약 이러한 조치 후에도 문제가 해결되지 않는다면, 사용하고 있는 PET API 라이브러리를 최신 버전으로 업데이트하는 것을 권장합니다. 최신 버전의 라이브러리는 Portwell 웹사이트에서 다운로드할 수 있습니다.




▶포트웰 코리아(주) | Portwell, Inc. 한국지사

▶전화 번호 : 031-450-3043

▶Fax : 031-450-3044

Passion, Know-How, and Imagination

 
 
 

Comments


bottom of page