여름 인턴쉽, 펌웨어 인턴 등 일자리를 찾을 수 있습니다. 그리고 약간의 차이가 추진되고있다. 새로운 지식의 축적이 나에게 큰 도움을 배울 수 있습니다 전에 그러나 그것은이다.
첫 번째 코드 안녕하세요 세계를 포용 여전히 세계입니다
우리는 세 개의 파일을 수정해야
text1.c
text1.inf
Nt32Pkg.dsc
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/ * * @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을; }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
## @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
사실, 기본적인 흐름을 기록, 그것은 여러 단계로 나누어 져 있습니다
- 적어도 *이 .c * INF 파일을 포함하여 템플릿을 복사하는 프로그램을 작성하려면
- * .C 파일, 우리는 두 가지를 할 필요가
- 원하는 항목 함수 이름을 수정
- 주요 기능에서 원하는 기능을 달성
- * INF 파일, 우리는 다음과 같은 일을 할
- 의 정의에서
- BASE_NAME 수정 -> 모듈 이름에 의해 생성
- GUID 식별자를 수정 (사용 VS 도구와 함께 제공)
- ENTRY_POINT 수정 -> 항목 함수 이름 (* .c 파일과 함께 해당)
- 소스에서 문은 하위 폴더에 포함되어 있습니다. 이 실험에서 단지 하나의 파일 text1.c을 포함
- 의 정의에서
- NT32Pkg에서 Nt32Pkg.dsc 디렉토리를 찾을 수 있습니다, 우리는 새로운 컴파일 * .INF 파일에 추가 할 필요가 구성 요소 완전한 문장이다.
컴파일하는 동안 약간의 문제가 있었다. 이 루트 디렉토리 사용하는 빌드 -p Nt32Pkg \ Nt32Pkg.dsc가 컴파일하고 새로운 실행 파일 *의 .elf를 컴파일 할 수 없습니다
그러나 사용하는 빌드 -p Nt32Pkg \ Nt32Pkg.dsc -a IA32 -m 응용 프로그램 \ 텍스트 1 \ text1.inf \ ShellPkg을 수있는 파일 디렉토리 컴파일러로.
또 다른 문제는 경우 \ 연구 \ n을하지 않고 문자열 * .c 파일의 출력 끝. 문자 출력 난 단지 orld 네 개의 문자를 표시, 실패로 이어질 것입니다. 그는 구체적으로 알 수없는, 적용 할 예정이다 기성 세대에게 물었다