제한된 리소스가있는 임베디드 시스템 용 PicoLibc C 라이브러리

임베디드 -C-

Keith Packard는 활동적인 데비안 개발자입니다. 그리고 그것은 또한 X.Org 프로젝트 리더 및 또한 창조자 많은 X 확장, XRender, XComposite 및 XRandR 포함. PicoLibc은 그의 작품 중 하나입니다. 그리고 이것은 C 라이브러리입니다 임베디드 장치 용으로 개발 된 제한된 리소스로 (즉, 고정 된 저장 공간과 RAM이 거의 없음). 개발 중에 일부 코드는 Atmel AVR 마이크로 컨트롤러 용으로 개발 된 Cygwin 및 AVR Libc 프로젝트의 newlib 라이브러리에서 차용되었습니다.

Keith Packard는 낮은 RAM 임베디드 장치에서 사용할 수있는 적절한 버전의 Libc를 찾지 못해 개발을 시작했습니다. 이 프로젝트는 작년부터 발전해 왔습니다. 첫 번째 단계에서 프로젝트는 newlib 변형이었습니다., stdio 함수는 avrlibc의 컴팩트 버전으로 대체되었습니다 (newlib의 stdio는 리소스의 과도한 소비에 적합하지 않음).

중국의 현재 활동은 RISC-V 아키텍처에 대한 지속적인 작업 및 임베디드 장치 용 도구 개발과 관련이 있으므로 최근 libc 구현 상태를 확인했습니다. y 결론 어떤, 약간만 조정하면 newlib와 avrlibc의 조합이 좋은 범용 솔루션이 될 수 있습니다. 처음에이 프로젝트는 "newlib-nano"라는 이름으로 개발되었지만 Newlib 라이브러리와의 혼동을 피하기 위해 PicoLibc로 이름이 변경되었습니다.

PicoLibc 정보

현재 형태로는 Picolibc는 이미 BSD 라이선스에 따라 제공되지 않은 모든 코드를 제거하기위한 작업을 수행했습니다. (이 코드는 임베디드 장치 용 어셈블리에 사용되지 않았습니다.) 프로젝트 라이센스로 상황을 크게 단순화했습니다.

스레드 로컬 구현이 'struct _reent'에서 TLS (스레드 로컬 저장소) 메커니즘으로 이동되었습니다. stdio의 압축 버전은 기본적으로 활성화되며, avrlibc 라이브러리 코드에서 가져옵니다 (ATmel 관련 어셈블러 삽입은 C로 다시 작성 됨).

도구 Meson은 컴파일에 사용됩니다., 뭐 newlib 스크립트를 첨부하지 않고 newlib에서 변경 사항 전송을 단순화 할 수 있습니다. 단순화 된 버전의 초기화 코드 (crt0)가 추가되어 실행 파일에 첨부되었으며 제어를 주 () 함수로 전송하기 전에 실행되었습니다.

PicoLibc의 소스 코드는 BSD 라이선스에 따라 배포되며 라이브러리는 ARM (32 비트), i386, RISC-V, x86_64 및 PowerPC 아키텍처를 지원합니다.

PicoLibc 1.1의 새 버전 정보

최근에 PicoLibc 1.1의 새 버전 출시를 발표했습니다. 세미 호스팅 기술을 지원하기 위해 도우미 라이브러리가 추가되었습니다. 디버거 또는 에뮬레이터 환경에서 실행되는 코드가 호스트 시스템의 입력 / 출력 메커니즘을 사용할 수 있도록하는입니다.

시스템 호출 열기, 닫기, 읽기 및 쓰기를 지원하는 시스템의 경우 tinystdio 표준화 된 POSIX I / O 인터페이스 추가, fopen 및 fdopen 함수를 포함하고 stdin / stdout / stderr을 POSIX 정의 파일 설명자에 바인딩합니다.

  • 최근 변경 사항은 newlib 코드베이스에서 전달되었습니다.. 계산 지원없이 시스템에서 사용할 수있는 fenv.h에 대한 추가 libm 스텁을 포함합니다.
  • ARM 및 RISC-V 시스템 용 picolibc와 함께 Hello World 애플리케이션 컴파일 예제를 추가하고 사용하지 않는 실험 코드가 포함 된 newlib, libm 및 mathfp 디렉토리를 제거했습니다.

Picolibc 사용 시작

Picolibc 사용을 시작하려면 Picolibc가 중간 빌드 시스템을 사용하여 GCC를 사용하는 Linux 호스트에서 다양한 하드웨어 플랫폼을 컴파일한다는 것을 알아야합니다. 그렇기 때문에 Python 3 및 Ninja를 설치하는 것 외에도 개발 환경의 일부로 중간자를 가져야합니다. 이를 위해 당신은 그것의 가이드를 참조 할 수 있습니다 다음 링크에서. 

마지막으로 Picolibc 코드를 얻으려면 다음 링크에서 수행 할 수 있습니다. 필요한 문서. 

또는 같은 방식으로 상담 할 수 있습니다. 인터넷에서 찾은 다음 가이드 자세한 정보가 있습니다.


코멘트를 첫번째로 올려

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.