산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 임베디드

베어메탈 개발자가 운영 체제로 전환한 이유

'베어메탈 시대'를 돌아보며

내가 임베디드 소프트웨어에 대해 처음 알게 된 것은 2008년 경이었고, 저는 2학년 때 51 칩 프로그래밍에 대해 배우기 시작했습니다. 컴퓨터 공학을 전공했기 때문에 대부분의 프로그램은 PC에서 실행되었습니다. 베어메탈 보드에서 실행되는 프로그램을 보는 것은 완전히 다른 경험이었고 첫 번째 사이클링 램프 프로그램이 성공적으로 실행되었을 때의 흥분을 아직도 기억합니다. 그러나 더 많은 베어메탈 프로그램을 작성할수록 더 많은 문제를 만났습니다. 다음과 같이 요약합니다.

동시성

베어메탈 프로그램의 경우 불가피하게 전체 프로젝트의 거의 모든 트랜잭션 로직을 포함하는 거대한 'while(1)' 루프가 있습니다. 각 트랜잭션은 하나 이상의 지연 기능을 호출하고 CPU가 지연 기능을 실행할 때 직렬로 실행되며 나머지 트랜잭션은 기다려야 합니다. 이런 식으로 CPU 시간의 많은 부분이 빈 루프에서 낭비되어 상당히 낮은 동시성을 유발합니다.

모듈성

소프트웨어 프로젝트의 관점에서는 개발 과정에서 항상 높은 응집력과 낮은 결합의 원칙이 강조됩니다. 그러나 베어메탈 소프트웨어의 모듈은 일반적으로 서로 크게 의존하며 결합도가 낮은 소프트웨어를 설계하는 것이 편리하지 않아 베어메탈 보드에서 대규모 프로젝트를 개발하기 어렵습니다. 예:

생태계

많은 고급 소프트웨어 구성 요소는 하위 수준 운영 체제의 구현에 의존해야 합니다. 예:

실시간

일부 응용 분야에서는 실시간 기능이 필요합니다. 이 상황에서 소프트웨어의 일부 중요한 단계는 특정 시간에 트리거되어야 합니다. 산업 제어를 위해 기계 장치는 미리 결정된 순서와 타이밍에 작업을 완료해야 합니다. 실시간 기능이 보장되지 않으면 오작동을 일으켜 작업자의 생명을 위협할 수 있습니다. 베어메탈 플랫폼에서 모든 기능이 하나의 큰 'while(1)' 루프에 갇히면 실시간 기능을 유지하는 것이 불가능합니다.

재사용성

재사용성은 모듈성에 직접적으로 의존합니다. 특히 코드를 작성할 때 같은 작업을 반복해서 하고 싶은 사람은 아무도 없다고 생각합니다. 그러나 칩이 다른 다양한 하드웨어 플랫폼에서는 동일한 기능을 다른 하드웨어에 적용해야 하며, 그 구현은 저수준 하드웨어에 크게 의존합니다. 바퀴를 다시 만드는 것은 불가피합니다.

운영 체제의 장점

제가 운영체제를 처음 사용한 것은 2010년 경이었습니다. STM32 MCU 시리즈가 대중화되기 시작했습니다. 강력한 기능으로 많은 사람들이 운영 체제를 실행했습니다. 그 다음에는 바로 사용할 수 있는 구성 요소가 많이 있는 RT-Thread 운영 체제를 사용하고 있었습니다. 다른 운영 체제에 비해 10년 동안 개발하고 있는 것이 더 편하고 좋습니다.

내 이해를 바탕으로 운영 체제의 장점에 대해 논의하고 싶습니다.

모듈성

운영 체제를 사용하면 전체 소프트웨어를 여러 작업(스레드라고 함)으로 분할할 수 있으며, 각 스레드에는 자체 독립 실행 공간이 있습니다. 서로 독립적이어서 모듈성을 향상시킵니다.

동시성

스레드가 지연 기능을 호출하면 필요한 다른 스레드에 CPU를 자동으로 양도하여 전체 CPU의 활용도를 높이고 궁극적으로 동시성을 향상시킵니다.

실시간

RTOS는 실시간 기능으로 설계되었습니다. 각 스레드에는 지정된 우선 순위가 할당됩니다. 더 중요한 스레드는 더 높은 우선순위로 설정되고 덜 중요한 스레드는 더 낮은 우선순위로 설정됩니다. 이러한 방식으로 전체 소프트웨어의 실시간 성능이 보장됩니다.

개발 효율성

운영 체제는 추상 인터페이스의 통합 계층을 제공하여 재사용 가능한 구성 요소의 축적을 촉진하고 개발 효율성을 향상시킵니다.

운영 체제는 소프트웨어 괴짜 그룹의 지혜의 산물입니다. 세마포어, 이벤트 알림, 사서함, 링 버퍼, 단방향 체인 목록/양방향 목록 등과 같은 많은 일반적인 소프트웨어 기능은 이러한 기능을 사용할 수 있도록 캡슐화 및 추상화됩니다.

Linux 및 RT-Thread와 같은 운영 체제는 장치 드라이버 프레임워크로 알려진 단편화된 하드웨어에 대한 표준 하드웨어 인터페이스 세트를 구현합니다. 따라서 소프트웨어 엔지니어는 개발에만 집중하면 되고 더 이상 기본 하드웨어에 대해 걱정하거나 휠을 다시 만들 필요가 없습니다.

소프트웨어 생태계

생태계의 풍부함은 양적 변화의 과정을 질적 변화로 가져옵니다.

운영 체제를 통한 모듈성 및 재사용성의 개선을 통해 운영 체제 기반의 임베디드 친화적인 재사용 가능한 구성 요소를 캡슐화할 수 있습니다. 이 구성 요소는 프로젝트에서 사용할 수 있을 뿐만 아니라 필요로 하는 더 많은 임베디드 개발자와 공유할 수 있으므로 가치를 극대화할 수 있습니다. 소프트웨어.

저는 오픈 소스 괴짜이고 GitHub에서 일부 임베디드 소프트웨어를 오픈 소스했습니다. 오픈 소스 소프트웨어를 만들기 전에는 사람들이 다른 칩이나 하드웨어 플랫폼을 사용하기 때문에 내 코드가 하드웨어에서 거의 실행될 수 없다고 생각했기 때문에 다른 사람들과 내 프로젝트에 대해 거의 이야기하지 않았습니다. 운영 체제를 사용하면 소프트웨어 재사용성이 크게 향상되고 많은 전문가가 동일한 프로젝트에 대해 서로 통신할 수 있습니다. 그들은 심지어 다른 나라에서 왔습니다. 이것은 점점 더 많은 사람들이 자신의 프로젝트를 공유하고 이야기하도록 장려하고 있습니다.


임베디드

  1. 숫자 체계
  2. 현재 신호 시스템
  3. 업계 접촉 추적:초정밀 Wi-Fi 기반 로컬 포지셔닝 시스템이 필요한 이유
  4. 왜 우리는 정전 중단 시간을 참아야 합니까?
  5. 물리적 보안을 위해 사이버 보안이 필수적인 이유
  6. 공압 컨베이어 시스템이 우수한 3가지 이유
  7. 왜 I.T. 시스템은 글로벌 공급망 진화의 핵심입니다
  8. 제약 공급망이 디지털화되어야 하는 이유:고려해야 할 6가지 질문
  9. 압축 공기 시스템의 안전한 작동 절차
  10. 추적 가능성이 IIoT 지원 제조 시스템의 필수 기반인 이유