첫 번째 코드의 UEFI --- (NT32)

여름 인턴쉽, 펌웨어 인턴 등 일자리를 찾을 수 있습니다. 그리고 약간의 차이가 추진되고있다. 새로운 지식의 축적이 나에게 큰 도움을 배울 수 있습니다 전에 그러나 그것은이다.

첫 번째 코드 안녕하세요 세계를 포용 여전히 세계입니다

 

우리는 세 개의 파일을 수정해야

text1.c

text1.inf

Nt32Pkg.dsc

/ * * @file 
  이것은 간단한 쉘 프로그램이다 

  저작권 (C) 2008 - 2010의 인텔. 모든 권리 보유. <BR> 
  이 프로그램 및 첨부 자료는 
  라이센스와 BSD 라이선스의 조건에 따라 사용할 수 있습니다 
  이 분포를 함께 제공됩니다. 라이센스의 전체 내용에서 찾을 수있다 
  http://opensource.org/licenses/bsd-license.php 

  "있는 그대로의"PROGRAM가 BSD의 라이센스하에 분포 
  역시 어떠한 보증이나없이 명시 적 또는 묵시적. 

* * / 

사용법 #include <Uefi.h> 
사용법 #include <라이브러리 / UefiApplicationEntryPoint.h> 
사용법 #include<라이브러리 / UefiLib.h> / * * 
  응용 프로그램의 실제 진입 점으로. 
  하여 EFI 이미지의 ImageHandle 펌웨어 할당 된 핸들 [에] @param. 
  EFI 시스템 테이블에 대한 포인터 SystemTable [IN] @param. 
  @retval EFI_SUCCESS은 엔트리 포인트가 성공적으로 실행됩니다. 
  이 진입 점을 실행할 때 @retval 다른 일부 오류가 발생합니다. 
* * / 
EFI_STATUS 
EFIAPI 
(주 
  EFI_HANDLE ImageHandle IN, 
  EFI_SYSTEM_TABLE IN   * SystemTable 
  ) 
{ 
  인쇄 (L " 안녕하세요 세계 \ r에 \ n을 " );
  반환 EFI_SUCCESS을;





}
text1.c
## @file 
# 샘플 UEFI 응용 프로그램 참조 EDKII 모듈 
# 
#이 입니다 간단한 쉘 응용 프로그램 
#의 
# 저작권 (C) 2009 년 - 2010 년 , 인텔. 모든 권리는 <BR>. 예약 
# 
#이 프로그램 및 첨부 자료 
#이 라이센스 및 약관 및 BSD 라이센스의 조건에서 사용할 
함께 # 분포를. 라이센스의 전체 내용은 다음 웹 사이트에서 확인할 수 있습니다 
#에 http : // opensource.org/licenses/bsd-license.php 
# 프로그램이에 BSD 라이센스에 따라 배포됩니다 " 있는 그대로 " 기초
어떠한 종류의 명시 적 또는 묵시적 보증이나 진술없이 #. 
# 
# 
## 

[정의] 
  INF_VERSION                     = 0x00010005 
  BASE_NAME                       = 텍스트 1 
  FILE_GUID                       = 1D73FF57-579C-40F2-BA4F- 851DFE50B614 
  MODULE_TYPE                     = UEFI_APPLICATION 
  VERSION_STRING                  = 1.0 
  ENTRY_POINT                     = 

#에 
다음 정보 # 이다  위한 것이 아니라 단지 빌드 도구 필요한 참조. 
#
# VALID_ARCHITECTURES            = IA32 X64 IPF EBC 
# 

[출처] 
  text1.c 

[패키지] 
  MdePkg / MdePkg.dec 

[LibraryClasses] 
  UefiApplicationEntryPoint 
  UefiLib
text1.inf

 

사실, 기본적인 흐름을 기록, 그것은 여러 단계로 나누어 져 있습니다

  1.  적어도 *이 .c * INF 파일을 포함하여 템플릿을 복사하는 프로그램을 작성하려면
  2. * .C 파일, 우리는 두 가지를 할 필요가
    1.   원하는 항목 함수 이름을 수정
    2.        주요 기능에서 원하는 기능을 달성
  3.  * INF 파일, 우리는 다음과 같은 일을 할
    1.   의 정의에서
      1.        BASE_NAME 수정 -> 모듈 이름에 의해 생성
      2.        GUID 식별자를 수정 (사용 VS 도구와 함께 제공)
      3.        ENTRY_POINT 수정 -> 항목 함수 이름 (* .c 파일과 함께 해당)
    2.      소스에서 문은 하위 폴더에 포함되어 있습니다. 이 실험에서 단지 하나의 파일 text1.c을 포함
  4.   NT32Pkg에서 Nt32Pkg.dsc 디렉토리를 찾을 수 있습니다, 우리는 새로운 컴파일 * .INF 파일에 추가 할 필요가 구성 요소 완전한 문장이다.

 

컴파일하는 동안 약간의 문제가 있었다. 이 루트 디렉토리 사용하는  빌드 -p Nt32Pkg \ Nt32Pkg.dsc가   컴파일하고 새로운 실행 파일 *의 .elf를 컴파일 할 수 없습니다

그러나 사용하는 빌드 -p Nt32Pkg \ Nt32Pkg.dsc -a IA32 -m 응용 프로그램 \ 텍스트 1 \ text1.inf \ ShellPkg을   수있는 파일 디렉토리 컴파일러로.

 

 

또 다른 문제는 경우 \ 연구 \ n을하지 않고 문자열 * .c 파일의 출력 끝. 문자 출력 난 단지 orld 네 개의 문자를 표시, 실패로 이어질 것입니다. 그는 구체적으로 알 수없는, 적용 할 예정이다 기성 세대에게 물었다

 

추천

출처www.cnblogs.com/chu-yi/p/11227457.html