• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            string

            string
            posts - 27, comments - 177, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
            非常感謝。
            祝新年快樂
            re: UEFI實戰(1)[未登錄] djx_zh 2015-10-21 21:59
            @馬天橫
            Nt32Pkg只支持-a IA32
            re: 《UEFI原理與編程》勘誤 djx_zh 2015-09-21 10:12
            @劉棟
            非常感謝。仲秋快樂。
            re: 《UEFI原理與編程》勘誤 djx_zh 2015-09-16 09:40
            @bearabby

            查看原帖 Linux環境下如何編譯、運行模擬器
            1. edksetup.sh
            2. EmulatorPkg/build.sh -a IA32
            3. EmulatorPkg/build.sh -a IA32 run
            第二步執行完畢后,會在Build/EmultatorPkg/Debug_GCC44/IA32/目錄下生成Host文件。
            第三步相當于cd Build/EmultatorPkg/Debug_GCC44/IA32/;./Host
            @winux
            是自己寫的。兩個有同樣FILE_GUID的文件會被認為是同一個文件。通常不會通過GUID在系統全局范圍內查找文件,所以文件GUID沖突通常不會造成困擾。
            Protocol的GUID一定不能沖突。
            re: 《UEFI原理與編程》勘誤 djx_zh 2015-08-16 09:42
            @winux
            UnixPkg已經被EmulatorPkg取代了
            @wwy900624
            Nt32不支持USB鼠標,至少我沒有在Nt32下成功使用過鼠標。
            在OVMF或者DUET下USB鼠標是可以的。
            re: UEFI 實戰(4) protocol djx_zh 2015-06-01 04:38
            @周彬彬
            對。本文中的方法依賴于 DISK_IO_PRIVATE_DATA的實現,而這個實現沒有一個標準,故不能保證向前兼容。這不是一個安全的方法,只是一個快速的方法。安全的方法還是調用OpenPrototocol或LocateProtocol。
            @jeanhoo
            源代碼在MdeModulePkg/Bus/Usb/UsbMouseDxe/
            編譯MedModulePkg后,應該可以得到UsbMouseDxe.efi
            在Shell里 load UsbMouseDxe.efi加載這個驅動
            @王帥
            Conf/Target文件里的TOOL_CHAIN_TAG你設置的是什么?
            通常failded to execute commond是由于你設置的TOOL_CHAIN_TAG在Conf/tools_def.txt中沒有找到。
            @zachary
            同贊
            @kurtqiao
            多謝更正。^_^
            1、模擬器中沒有加載鼠標驅動,所有不支持。
            你可以用QUMU虛擬機,加載USB鼠標驅動后就可以了。
            2、刷機需謹慎啊。用QEMU虛擬機可以很方便的使用.fd固件
            3、目前EDK2對Form的支持比較弱,仍然是類文本格式界面。我個人覺得可能會很快出現比較好用的圖形界面庫。所以沒有在書中介紹Form。如果你真的很想學習Form,可以參考Nt32Pkg里面EDK2自帶的示例
            re: UEFI實戰(5) driver djx_zh 2014-09-26 09:08
            勘誤:
            設置 Last Valid Index(LVI)寄存器 (PCM OUT: MBBAR + 15h (POLVI))。LVI是BDL中最后一個準備好緩沖區的buffer descriptor的下標。
            多謝各位關注。爭取下周能夠定稿。
            re: UEFI實戰(5) driver[未登錄] djx_zh 2014-05-27 01:51
            把UEFI驅動(必須遵循UEFI驅動規范)燒到rom里,系統會自動加載這個驅動
            抱歉了,各位,書還在改稿中。
            計劃趕不上變化啊,原來以為一兩個月就能改好的,現在看來還要至少再兩月才能改完。
            關閉優化選項,然后就應該可以了
            [BuildOptions]
            MSFT:DEBUG_*_IA32_CC_FLAGS = /Od
            @kllei
            exit /b errorcode
            這條命令會設置lasterror。
            re: UEFI實戰(5) driver[未登錄] djx_zh 2013-12-23 22:13
            多謝關注。 如果一切順利的話,新書將于4月份發行。到時將有ffdecoder, ffplayer, CppPkg, GuiPkg 等源碼隨書發行。
            re: 搬家 djx_zh 2013-11-17 23:16
            抱歉,www.photovas.com 服務器壞掉了
            re: UEFI實戰(1)[未登錄] djx_zh 2013-11-17 23:12
            @Jerry
            UEFI 完成硬件初始化后,會遍歷GPT硬盤中的FAT分區,從FAT分區找到efi/boot/bootia32.efi 或efi/boot/bootx64.efi, 操作系統的啟動由bootx64.efi或bootia32.efi完成。
            MBR硬盤啟動代碼以二進制形式放在活動分區指定的地方。GPT硬盤的啟動代碼是完整的應用程序,存放在啟動分區即FAT分區的efi/boot目錄下
            @xmuchgw
            你要使用AppPkg,當使用LibC時。
            @snowman1101
            在你application的.inf文件的[LibraryClasses] 下面加入SmbiosDxe
            @becky

            可能是源代碼的問題,我也遇到過main.efi不能運行的情況。 如果你只是學習UEFI, svn co https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2 edk2 可以下載到所有的源代碼。 這樣build出來的main.efi 是可以正常運行的。

            FILE_GUID 沒有特殊意義,編程中不會用到。 你任意生成一個GUID就可以了,你上網搜一下有很多GUID生成器
            試一下在你.inf文件的編譯選項里加/Zc:wchar_t-
            re: UEFI 實戰(4) protocol djx_zh 2012-10-05 08:37
            代碼中少了一句
            EFI_PARTITION_TABLE_HEADER* gptHeader = (EFI_PARTITION_TABLE_HEADER*
            )gpHeaderBuf;

            在你.inf文件的[Protocols]下面加上
            gEfiDevicePathToTextProtocolGuid
            @SunShine
            對。
            你自己的.inf 中[LibraryClasses] 有 UefiShellCEntryLib, build看到后會去.dsc中找UefiShellCEntryLib 對應的.inf文件,并編譯這個lib。 “|” 前是Lib的名字,后面是Lib的.inf路徑。
            @SunShine
            在.dsc 中的 [LibraryClasses]加入
            ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf
            @Amin
            你是說編譯ffdecoder很辛苦嗎? ffdecoder的編譯比較麻煩,需要修改EDK2的源碼和ffmpeg源碼。除非你很有興趣去學習EDK2, 否則沒必要去編譯ffdecoder.
            ffplayer編譯非常簡單。
            X64的.efi文件已經發給你了。
            @Amin
            X64的仍有些技術問題沒有解決。解碼速度已經足夠了,但是GraphOutputProtocol的顯示速度太慢。 你可以留個email給我,我發給你。
            @劉煒
            是的。
            MdeModulePkg\Universal\Disk\DiskIoDxe\DiskIo.h:36
            typedef struct {
            UINTN Signature;
            EFI_DISK_IO_PROTOCOL DiskIo;
            EFI_BLOCK_IO_PROTOCOL *BlockIo;
            } DISK_IO_PRIVATE_DATA
            @ningle
            開發UEFI application的主流還是C。 如果application規模十分龐大,用C++開發效率會高些。
            @劉煒
            uefi不能識別fat以為的文件系統,要想識別ext,只能自己去修改/編譯ext的源碼
            @劉煒
            是全局變量, 定義在MdePkg/Include/Library/UefiBootServicesTableLib.h
            初始化在 MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.c
            加上這個#include 試試
            #include "Library/UefiBootServicesTableLib.h"
            @djx_zh
            https://codelibrarydzh.googlecode.com/files/EFI_FFDECODER_PROTOCOL_1.1.zip
            修正一個bug: 顯示的時候應采用BGRA格式。
            增加了timer用于控制播放。按'q'退出播放
            @劉煒
            抱歉,我沒有做過TPM的編程
            ANSI格式應該沒問題,可以把出錯信息告訴我嗎?
            re: UEFI實戰(5) driver[未登錄] djx_zh 2012-04-24 01:41
            @ningle
            EFI_COMPONENT_NAME_PROTOCOL 和EFI_COMPONENT_NAME2_PROTOCOL 一般放在CompontName.c中
            GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gAudioComponentName = {
            AudioComponentNameGetDriverName,
            AudioComponentNameGetControllerName,
            "eng"
            };

            GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gAudioComponentName2 = {
            (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) AudioComponentNameGetDriverName,
            (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) AudioComponentNameGetControllerName,
            "en"
            };

            GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mAudioDriverNameTable[] = {
            {
            "eng;en",
            (CHAR16 *)L"Generic AC97 Driver"
            },
            {
            NULL,
            NULL
            }
            };

            EFI_STATUS
            EFIAPI
            AudioComponentNameGetDriverName (
            IN EFI_COMPONENT_NAME_PROTOCOL *This,
            IN CHAR8 *Language,
            OUT CHAR16 **DriverName
            )
            {
            return LookupUnicodeString2 (
            Language,
            This->SupportedLanguages,
            mAudioDriverNameTable,
            DriverName,
            (BOOLEAN)(This == &gAudioComponentName)
            );
            }


            EFI_STATUS
            EFIAPI
            AudioComponentNameGetControllerName (
            IN EFI_COMPONENT_NAME_PROTOCOL *This,
            IN EFI_HANDLE ControllerHandle,
            IN EFI_HANDLE ChildHandle OPTIONAL,
            IN CHAR8 *Language,
            OUT CHAR16 **ControllerName
            )
            {
            return EFI_UNSUPPORTED;
            }
            @ningle
            在.dsc文件末尾添加
            !include StdLib/StdLib.inf
            具體可參考AppPkg/AppPkg.dsc
            re: UEFI實戰(1) djx_zh 2012-03-12 07:20
            @ningle
            謝謝關注。這幾部分還沒寫,我盡快寫吧。如果看到寫的有不準確的地方,也請告訴我啊。
            re: UEFI實戰(1) djx_zh 2011-12-06 00:00
            UEFI會為每一個分區創建一個controller, 也會為每個硬盤創建一個controller. 通過安裝到controller上的DiskIo protocol可以讀寫每一個扇區。
            每個controller上有DevicePath protocol, 你可以通過DevicePath判斷該controller是一個扇區,還是一個硬盤。扇區的DevicePath的的最后一個有效Node是HD(SPEC 9.3.6.1)。
            當你獲得了GPT硬盤的DiskIo之后,可以利用DiskIo讀第一個扇區(第0個是MBR或者Protective MBR)得到GPT header,第2~33分區存放的是EFI_PARTITION_ENTRY。 GPT用到的數據結構在MdePkg/Include/Uefi/UefiGpt.h中,GPT的格式可以參考UEFI SPEC 第5章。
            可以用VS實現。
            @石新飛
            如有問題,歡迎討論。
            glibc中用SSE4.2指令集優化的KMP算法,號稱最快可以比c的strstr函數加速10倍。
            re: thread wrapper djx_zh 2010-06-09 19:08
            @梅發坤
            Cool, 這樣就清晰多了,還容易調試。
            re: thread wrapper djx_zh 2010-06-08 15:35
            @陳梓瀚(vczh)
            對,模板比宏好用。
            re: thread wrapper djx_zh 2010-06-08 13:59
            @天堂的隔壁
            多謝賜教。 是搞的挺復雜的。但可以把這套復雜的東西放到頭文件里,用戶不用關心。 用戶只要調用slaunchX就可以了, 不過這種簡單的線程好像不大實用。
            re: the hierarchy of HTMLNode djx_zh 2009-07-07 16:55
            @windyrobin
            我重新上載了rar文件,現在可以下了。
            久久精品国产亚洲AV不卡| 亚洲精品无码久久毛片| 72种姿势欧美久久久久大黄蕉| 色婷婷综合久久久久中文| 嫩草影院久久99| 久久精品成人欧美大片| 久久精品国产亚洲AV高清热| 色综合合久久天天综合绕视看| 久久综合狠狠综合久久97色| 久久丫精品国产亚洲av| 99久久精品九九亚洲精品| 少妇久久久久久被弄高潮| 国产精品热久久无码av| 一本久久免费视频| 色偷偷888欧美精品久久久| 久久精品国产清自在天天线| 国产精品免费久久久久电影网| 中文字幕乱码人妻无码久久| 久久亚洲2019中文字幕| 久久精品国产免费一区| 亚洲伊人久久大香线蕉综合图片| 久久精品综合一区二区三区| 久久国产乱子精品免费女| 97精品依人久久久大香线蕉97 | 久久久久久久亚洲Av无码| 国产999精品久久久久久| 久久99免费视频| 国产日产久久高清欧美一区| 伊人久久大香线蕉av一区| 欧美久久久久久午夜精品| 26uuu久久五月天| 久久综合狠狠综合久久激情 | 精品久久777| 精品久久久久久久| 亚洲一本综合久久| 91精品国产91热久久久久福利| 久久精品国产亚洲一区二区| 大伊人青草狠狠久久| 一本久久久久久久| 久久成人18免费网站| 久久影院亚洲一区|