• <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++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
            非常感謝。
            祝新年快樂(lè)
            @馬天橫
            Nt32Pkg只支持-a IA32
            re: 《UEFI原理與編程》勘誤 djx_zh 2015-09-21 10:12
            @劉棟
            非常感謝。仲秋快樂(lè)。
            re: 《UEFI原理與編程》勘誤 djx_zh 2015-09-16 09:40
            @bearabby

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

            可能是源代碼的問(wèn)題,我也遇到過(guò)main.efi不能運(yùn)行的情況。 如果你只是學(xué)習(xí)UEFI, svn co https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2 edk2 可以下載到所有的源代碼。 這樣build出來(lái)的main.efi 是可以正常運(yùn)行的。

            FILE_GUID 沒(méi)有特殊意義,編程中不會(huì)用到。 你任意生成一個(gè)GUID就可以了,你上網(wǎng)搜一下有很多GUID生成器
            試一下在你.inf文件的編譯選項(xiàng)里加/Zc:wchar_t-
            代碼中少了一句
            EFI_PARTITION_TABLE_HEADER* gptHeader = (EFI_PARTITION_TABLE_HEADER*
            )gpHeaderBuf;

            在你.inf文件的[Protocols]下面加上
            gEfiDevicePathToTextProtocolGuid
            @SunShine
            對(duì)。
            你自己的.inf 中[LibraryClasses] 有 UefiShellCEntryLib, build看到后會(huì)去.dsc中找UefiShellCEntryLib 對(duì)應(yīng)的.inf文件,并編譯這個(gè)lib。 “|” 前是Lib的名字,后面是Lib的.inf路徑。
            @SunShine
            在.dsc 中的 [LibraryClasses]加入
            ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf
            @Amin
            你是說(shuō)編譯ffdecoder很辛苦嗎? ffdecoder的編譯比較麻煩,需要修改EDK2的源碼和ffmpeg源碼。除非你很有興趣去學(xué)習(xí)EDK2, 否則沒(méi)必要去編譯ffdecoder.
            ffplayer編譯非常簡(jiǎn)單。
            X64的.efi文件已經(jīng)發(fā)給你了。
            @Amin
            X64的仍有些技術(shù)問(wèn)題沒(méi)有解決。解碼速度已經(jīng)足夠了,但是GraphOutputProtocol的顯示速度太慢。 你可以留個(gè)email給我,我發(fā)給你。
            @劉煒
            是的。
            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
            開(kāi)發(fā)UEFI application的主流還是C。 如果application規(guī)模十分龐大,用C++開(kāi)發(fā)效率會(huì)高些。
            @劉煒
            uefi不能識(shí)別fat以為的文件系統(tǒng),要想識(shí)別ext,只能自己去修改/編譯ext的源碼
            @劉煒
            是全局變量, 定義在MdePkg/Include/Library/UefiBootServicesTableLib.h
            初始化在 MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.c
            加上這個(gè)#include 試試
            #include "Library/UefiBootServicesTableLib.h"
            @djx_zh
            https://codelibrarydzh.googlecode.com/files/EFI_FFDECODER_PROTOCOL_1.1.zip
            修正一個(gè)bug: 顯示的時(shí)候應(yīng)采用BGRA格式。
            增加了timer用于控制播放。按'q'退出播放
            @劉煒
            抱歉,我沒(méi)有做過(guò)TPM的編程
            ANSI格式應(yīng)該沒(méi)問(wèn)題,可以把出錯(cuò)信息告訴我嗎?
            @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實(shí)戰(zhàn)(1) djx_zh 2012-03-12 07:20
            @ningle
            謝謝關(guān)注。這幾部分還沒(méi)寫(xiě),我盡快寫(xiě)吧。如果看到寫(xiě)的有不準(zhǔn)確的地方,也請(qǐng)告訴我啊。
            re: UEFI實(shí)戰(zhàn)(1) djx_zh 2011-12-06 00:00
            UEFI會(huì)為每一個(gè)分區(qū)創(chuàng)建一個(gè)controller, 也會(huì)為每個(gè)硬盤(pán)創(chuàng)建一個(gè)controller. 通過(guò)安裝到controller上的DiskIo protocol可以讀寫(xiě)每一個(gè)扇區(qū)。
            每個(gè)controller上有DevicePath protocol, 你可以通過(guò)DevicePath判斷該controller是一個(gè)扇區(qū),還是一個(gè)硬盤(pán)。扇區(qū)的DevicePath的的最后一個(gè)有效Node是HD(SPEC 9.3.6.1)。
            當(dāng)你獲得了GPT硬盤(pán)的DiskIo之后,可以利用DiskIo讀第一個(gè)扇區(qū)(第0個(gè)是MBR或者Protective MBR)得到GPT header,第2~33分區(qū)存放的是EFI_PARTITION_ENTRY。 GPT用到的數(shù)據(jù)結(jié)構(gòu)在MdePkg/Include/Uefi/UefiGpt.h中,GPT的格式可以參考UEFI SPEC 第5章。
            可以用VS實(shí)現(xiàn)。
            @石新飛
            如有問(wèn)題,歡迎討論。
            glibc中用SSE4.2指令集優(yōu)化的KMP算法,號(hào)稱最快可以比c的strstr函數(shù)加速10倍。
            re: thread wrapper djx_zh 2010-06-09 19:08
            @梅發(fā)坤
            Cool, 這樣就清晰多了,還容易調(diào)試。
            re: thread wrapper djx_zh 2010-06-08 15:35
            @陳梓瀚(vczh)
            對(duì),模板比宏好用。
            re: thread wrapper djx_zh 2010-06-08 13:59
            @天堂的隔壁
            多謝賜教。 是搞的挺復(fù)雜的。但可以把這套復(fù)雜的東西放到頭文件里,用戶不用關(guān)心。 用戶只要調(diào)用slaunchX就可以了, 不過(guò)這種簡(jiǎn)單的線程好像不大實(shí)用。
            re: the hierarchy of HTMLNode djx_zh 2009-07-07 16:55
            @windyrobin
            我重新上載了rar文件,現(xiàn)在可以下了。
            亚洲综合久久夜AV | 99久久国产精品免费一区二区 | 久久国产精品波多野结衣AV| 伊人久久大香线焦综合四虎| 精品国产91久久久久久久a| 奇米影视7777久久精品人人爽| 青草国产精品久久久久久| 美女久久久久久| 狠狠色丁香婷婷久久综合五月| 久久亚洲精品无码播放| 亚洲狠狠婷婷综合久久蜜芽| 久久精品国产亚洲av高清漫画 | 久久久青草青青国产亚洲免观| 国内精品伊人久久久久网站| 久久精品欧美日韩精品| 久久本道久久综合伊人| 人妻精品久久久久中文字幕69| 精品视频久久久久| 亚洲国产精品一区二区久久| 久久精品国产亚洲AV无码娇色 | 超级97碰碰碰碰久久久久最新 | 精品人妻久久久久久888| 欧美牲交A欧牲交aⅴ久久| 人人狠狠综合88综合久久| 久久精品成人| 久久精品人人做人人爽电影| 麻豆久久久9性大片| 久久久久久精品成人免费图片| 精品久久久久久无码人妻热| 国内精品久久久久久野外| 91精品国产综合久久精品| 国产成人精品久久一区二区三区av| 欧美久久一级内射wwwwww.| 亚洲国产成人久久综合碰碰动漫3d| 色偷偷888欧美精品久久久| 久久99精品免费一区二区| 久久精品免费全国观看国产| 久久久久久国产a免费观看黄色大片| 亚洲精品NV久久久久久久久久| 久久人人爽人人爽人人片AV东京热| 国产精品久久久久免费a∨|