N108은 외부 LCD를 지원하는 TM4C123 칩을 위해 작성된 전체 실시간 운영 체제입니다. OS의 커널은 처음부터 작성되었습니다. OS는 특정 외부 하드웨어에 의존하여 제대로 작동하지만 자급 자족하도록 쉽게 수정할 수 있습니다. 필요한 외부 하드웨어 리소스 목록은 아래를 참조하십시오.
OS는 유닉스와 같은 쉘을 통해 상호 작용합니다. 쉘은 보드의 UART0을 통한 직렬 통신을 사용하여 N108 운영 체제에 입력하는 명령을 보냅니다. OS와 인터페이스하려면 USB를 통해 TM4C123 LaunchPad를 컴퓨터에 연결하고 Mac 용 Coolterm 또는 Windows 용 Putty와 같은 직렬 인터페이스를 발사하고 사용중인 직렬 포트에 연결하십시오. 거기에서 N108 쉘의 프롬프트를 볼 수 있어야합니다. 이 인터페이스에서 명령을 발행 할 수 있습니다.
N108에는 전체 프로세스로드 지원이 있으므로 프로그램과 함께 OS를 다시 컴파일하지 않고도이 OS를 사용하여 자신의 TM4C123 프로그램을 독립적으로 컴파일하고 시작할 수 있습니다. 이 기능을 사용하려면 Keil Uvision (또는 기타 임베디드 암 컴파일러)을 사용하여 독립 프로그램을 컴파일하고 ELF 파일을 FAT32 형식의 SD 카드로 삭제하십시오. SD 카드를 TM4C123에 연결하고 OS를 실행하십시오. OS의 쉘에서 '런치'를 입력하십시오. 여기서 ''는 SD 카드에있는 ARM ELF 파일의 이름입니다. OS는 프로그램을 시작하고 실행을 시작해야합니다.
OS는 단일 시스템 호출을 지원합니다 : OS_DISPLAYMESSAGE. 이 호출을 사용하면 문자열을 보드에 부착 한 ST7735 LCD에 인쇄 할 수 있습니다. 화면의 위치를 지정하려면 4 개의 매개 변수가 필요합니다. 보드가 텍스트를 표시 할 위치를 지정합니다. OS_CRITICAL/OS.C에서 발견 된 정적 Const ELFSYMBOL_T SYMPLACTABLE [] 배열을 수정하고 새 기능에 대한 포인터를 추가하여 더 많은 통화를 쉽게 추가 할 수 있습니다.
이 영역에 더 많은 시스템 호출을 추가하여 외부 리소스 대신 TM4C SOC 리소스의 쉽게 액세스 할 수 있도록 생각하고 있습니다. TBD.
상자 밖에서 OS는 세 가지 외부 하드웨어에 의존하여 정상적으로 작동하기 위해 작동합니다. 직렬 드라이버를 인터페이스하고 명령 (예 : 개인용 컴퓨터), LCD 및 SD 카드 리더를 발행하는 외부 칩. LCD는 출력 소스 (직렬 포트와 함께)로 사용되며 SD 카드 리더는 파일 시스템 및 프로세스 로더에서 외부 프로세스를로드하고 실행하는 데 사용됩니다. 직렬 인터페이스 명령 목록은 아래를 참조하십시오. SSI 호환 LCD 및 SD 인터페이스를 허용하기 때문에 개인적으로 ST7735를 사용했습니다. 이에 대한 개략도는 아래에 포함되어 있습니다.
이 운영 체제는 ARM TM4C123 칩의 변형을 위해 설계되었습니다. 그러나 대부분의 하드웨어 추상화 계층은 OS_Critical/Hardwaremanager에 저장됩니다. 이 모듈은 다른 장치에서 지원되는 드라이버를 위해 매우 쉽게 교체 할 수 있습니다. 운영 체제는 핵심 작동을 위해 다음 하드웨어 도구를 사용합니다.
UART :
PLL :
GPIO :
SSI :
이 코드는 Texas Instruments Code Composer Studio와 함께 사용하도록 설계되었습니다. 저장소를 복제하고 프로젝트를 CCS 작업 공간으로 가져 오십시오. 프로젝트는 추가 작업이 필요하지 않고 박쥐를 구축해야합니다.
이 운영 체제는 TI TM4C123 LANKEPAD로 기본적으로 플래시됩니다.
OS는 외부 ST7735 LCD를 사용하여 LCD와 파일 시스템의 외부 SD 카드 리더로 사용합니다. 내 OS는 센서와의 인터페이스와 같은 다른 목적으로 사용되었으므로 두 번째 이미지의 외부 연결을 무시하십시오. 중요한 것은 ST7735를 연결하는 것입니다.
다음은 이것을 런치 패드에 연결하는 방법에 대한 회로도입니다. 

OS 간의 기본 인터페이스 (보드에서 실행)는 온보드 직렬 UART 포트를 통해 수행됩니다. 컴퓨터의 Mac의 Cooledge 또는 Windows의 Putty와 같은 터미널 프로그램을 사용하여 부팅이 완료되면 이러한 명령을 OS 통역사로 전송할 수 있습니다.
상자 밖에서 운영 체제는 Shell/Shell.c에서 볼 수 있듯이 다음 명령을 지원합니다.
char* commandFormat[] =
{
"help",
"runproc <processname>"
}
매우 베어 본이지만 여기서 아이디어는 나머지 운영 체제와 자신의 명령을 추가하고 인터페이스하는 것입니다. RunProc은 외부 프로세스 (ST7735 브레이크 아웃 보드에 삽입 된 SD 카드에 저장)를로드하고 해당 프로그램을 실행하기 시작합니다. 유휴 상태에서는 통역사 만 실행됩니다.