欢迎来到皮皮网网首页

【神采源码】【simplecd 源码】【chrt 源码】ddk源码编译

来源:回马枪 源码 时间:2024-11-25 04:04:54

1.用编程的源译方法禁用某一硬件设备.求代码
2.TLV320AIC23的应用

ddk源码编译

用编程的方法禁用某一硬件设备.求代码

       首先,应该解决如何实现“开始”---“运行”的码编正常使用。你可以试试这个方法是源译否可以让你进入到注册表中:

       找一个程序的快捷方式,右键点击"属性"

       "目标"中写"regedit"这样可以打开注册表.

       然后打开HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies \Explorer,在右边空白处单击鼠标右键,码编选择"新建"的源译"DWORD",然后输入名字为"NoRun",码编神采源码再双击它,源译修改NoRun 为1 表示禁用"运行",码编0 则相反。源译

       如果真的码编可以进入注册表了,运行也可以正常使用了,源译那么“设备管理器”的码编重新使用就显得十分简单了。

       试试看下面的源译方法吧,不知道是码编否可行:

       1. 重新从Windows CD中解压devmgmt.msc和devmgmt.dll,命令如下:

       expand cdrom:\i\devmgmt.ms_ %systemroot%\system\devmgmt.msc

       expand cdrom:\i\devmgr.dl_ %systemroot%\system\devmgr.dll

       2.重新注册一下msxml parser,源译命令如下:

       regsvr C:\Windows\system\msxml3.dll

       3.如果2还不行,去

       下载Microsoft XML Parser 3.0, 可能带SP一类的,然后安装那个msxml3xxx.msi文件。

       一般这个问题还伴随Windows Update不灵的simplecd 源码问题,你也可以检查一下。

       先试试第2种方法,不行后再试试1和3,毕竟2比较简单一些。

       最后,

       这是来自微软的信息,希望对你有用。

       DevCon 命令行实用工具可替代设备管理器

       察看本文应用于的产品

       文章编号 :

       最后修改 : 年月日

       修订 : 4.2

       本文的发布号曾为 CHS

       本页

       概要

       更多信息

       使用 DevCon

       DevCon 命令示例

       注意

       这篇文章中的信息适用于:

       概要

       DevCon 实用工具是一种命令行实用工具,可以替代设备管理器。使用 DevCon,您可以启用、禁用、重新启动、更新、删除和查询单个设备或一组设备。DevCon 还提供与驱动程序开发人员有关、但无法在设备管理器中看到的信息。

       可以将 DevCon 用于 Microsoft Windows 、Windows XP 和 Windows Server ,chrt 源码但不能将其用于 Windows 、Windows 或 Windows Millennium Edition。

       回到顶端

       更多信息

       DevCon 不可再分发。提供它是为了用作调试和开发工具。您可以随意修改 DevCon 以供个人专用。此示例演示了如何有效地同时使用 SetupAPI 和 CfgMgr 函数来枚举设备和执行设备操作。 可以从 Microsoft 下载中心下载以下文件:

       立即下载 DevCon 软件包。 () 发布日期: 年 1 月 日

       有关如何下载 Microsoft 支持文件的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

        () 如何从联机服务获取 Microsoft 支持文件

       Microsoft 已对此文件进行了病毒扫描。Microsoft 使用的是该文件发布时可以获得的最新病毒检测软件。该文件存储在安全性得到增强的服务器上,以防止在未经授权的情况下对其进行更改。

       DevCon.exe 文件包含以下文件:

       文件 说明

       I\DevCon.exe 位 DevCon 工具的二进制文件。此文件在 位 Windows 上不能充分发挥作用。

       Ia\DevCon.exe 位 DevCon 工具的二进制文件。

       注意:DevCon 的源代码也可以从 Windows DDK(位于 ())中得到,路径是firebird 源码 DDK root\Src\Setup\Devcon,此位置还提供了文档。

       回到顶端

       使用 DevCon

       DevCon 是一个带有内置文档的命令行实用工具。如果您运行 devcon help 命令,将会出现以下命令列表和描述信息。devcon help 命令可提供关于任何命令的详细帮助。使用其中的某些命令,您可以指定远程目标计算机。如果您在 WOW 上使用 位版的 DevCon,则以下命令有效。设备控制台帮助:

       devcon.exe [-r] [-m:\\<machine>] <command> [<arg>...]

       -r 如果指定它,在命令完成后若需要则重新启动计算机。

       <machine> 是目标计算机的名称。

       <command> 是将要执行的命令(如下所示)。

       <arg>... 是命令需要的一个或多个参数。

       要获取关于某一特定命令的帮助,请键入:devcon.exe help <command>

       classfilter 允许修改类别筛选程序。

       classes 列出所有设备安装类别。

       disable 禁用与指定的openflow源码硬件或实例 ID 匹配的设备。

       driverfiles 列出针对设备安装的驱动程序文件。

       drivernodes 列出设备的所有驱动程序节点。

       enable 启用与指定的硬件或实例 ID 匹配的设备。

       find 查找与指定的硬件或实例 ID 匹配的设备。

       findall 查找设备,包括那些未显示的设备。

       help 显示此信息。

       hwids 列出设备的硬件 ID。

       install 手动安装设备。

       listclass 列出某一安装类别的所有设备。

       reboot 重新启动本地计算机。

       remove 删除与特定的硬件或实例 ID 匹配的设备。

       rescan 扫描以发现新的硬件。

       resources 列出设备的硬件资源。

       restart 重新启动与特定的硬件或实例 ID 匹配的设备。

       stack 列出预期的设备驱动程序堆栈。

       status 列出设备的运行状态。

       update 手动更新设备。

       UpdateNI 手动更新设备,无用户提示

       SetHwID 添加、删除和更改根枚举设备的硬件 ID 的顺序。

       DevCon 命令示例

       devcon -m:\\test find pci\*

       列出计算机 test 上的所有已知 PCI 设备。(通过使用 -m,您可以指定一个目标计算机。您必须使用“进程间通信”(IPC) 访问此计算机。)

       devcon -r install %WINDIR%\Inf\Netloop.inf *MSLOOP

       安装一个新的 Microsoft 环回适配器实例。这将创建一个新的根枚举设备节点,使用此节点您可以安装“虚拟设备”,如环回适配器。如果需要重新启动计算机,此命令还将以安静模式重新启动计算机。

       devcon classes

       列出所有已知的安装类别。输出结果包含短的未本地化的名称(例如,“USB”)和描述性名称(例如,“通用串行总线控制器”)。

       devcon classfilter upper !filter1 !filter2

       删除这两个指定的筛选程序。

       devcon classfilter lower !badfilter +goodfilter

       用“goodfilter”替换“badfilter”。

       devcon driverfiles =ports

       列出与 ports 安装类别中的每一个设备关联的文件。

       devcon disable *MSLOOP

       禁用硬件 ID 以“MSLOOP”结尾(包括“*MSLOOP”)的所有设备。

       devcon drivernodes @ROOT\PCI_HAL\PNP0A

       列出设备“ROOT\PCI_HAL\PNP0A”的所有兼容驱动程序。这可以用来确定为什么选择原配的设备信息 (.inf) 文件而不选第三方 .inf 文件。

       devcon enable '*MSLOOP

       启用硬件 ID 为“*MSLOOP”的所有设备。单引号指示必须严格按字面解释硬件 ID(换句话说,星号 [“*”] 真的是 一个星号,而不是通配符)。

       devcon find *

       列出本地计算机上存在的所有设备的设备实例。

       devcon find pci\*

       列出本地计算机上所有已知的“外围组件互连”(PCI) 设备(如果一个设备的硬件 ID 以“PCI\”为前缀,此命令就认为该设备是 PCI 设备)。

       devcon find =ports *pnp*

       列出存在的作为 ports 安装类别的成员而且硬件 ID 中包含“PNP”的设备。

       devcon find =ports @root\*

       列出存在的作为 ports 安装类别的成员而且在枚举树的“root”分支中的设备(实例 ID 以“root\”为前缀)。请注意,有关实例 ID 的格式化方式,不应作任何编程假定。要确定根设备,可以检查设备状态位。此功能包括在 DevCon 中是为了帮助进行调试。

       devcon findall =ports

       列出 ports 类别的“不存在”的设备和存在的设备。这包括已经被删除的设备、从一个插槽移到另一个插槽的设备,以及在某些情况下由于 BIOS 改变而被不同地枚举的设备。

       devcon listclass usb

       列出命令中所列的每个类别(本例中是 USB 和 )的所有存在的设备。

       devcon remove @usb\*

       删除所有 USB 设备。被删除的设备列出时将显示其删除状态。

       devcon rescan

       重新扫描以发现新的“即插即用”设备。

       devcon resources =ports

       列出由 ports 安装类别中的所有设备使用的资源。

       devcon restart =net @'ROOT\*MSLOOP\

       重新启动环回适配器“ROOT\*MSLOOP\”。命令中的单引号指示必须按字面解释实例 ID。

       devcon hwids=mouse

       列出系统中鼠标类设备的所有硬件 ID。

       devcon sethwid @ROOT\LEGACY_BEEP\ := beep

       将硬件 ID beep 赋予旧式蜂鸣设备。

       devcon stack =ports

       列出设备预期的驱动程序堆栈。包括设备和类别高层/低层筛选程序,以及控制服务。

       devcon status @pci\*

       列出实例 ID 以“pci\”开头的每一个存在设备的状态。

       devcon status @ACPI\PNP\1

       列出特定设备实例的状态,在本例中是一个高级配置和电源界面 (ACPI) - 枚举的串行端口。

       devcon status @root\rdp_mou\

       列出 Microsoft 终端服务器或终端服务鼠标驱动程序的状态。

       devcon status *PNP*

       列出所有 COM 端口的状态。

       devcon update mydev.inf *pnp

       更新与硬件 ID *pnp 严格匹配的所有设备,让它们使用 Mydev.inf 中与硬件 ID *pnp 关联的最好的驱动程序。

       注意:即使系统上已经存在更好的匹配项,这一更新也将强制所有设备使用 Mydev.inf 中的驱动程序。如果在获得签名之前,您想要在开发过程中安装驱动程序的新版本,则这是很有用的。此更新仅影响与指定的硬件 ID 匹配的设备,不会影响到其子设备。如果指定的 .inf 文件未经签名,则 Windows 可能会显示一个对话框,提示您确认是否应安装此驱动程序。如果需要重新启动计算机,将报告这一情况并且 DevCon 返回一个级别 1 错误。如果指定 -r,在需要重新启动计算机时就会自动重启。

       注意

DevCon 将返回一个在脚本中使用的错误级别:

       “0”指示成功。

       “1”指示需要重新启动。

       “2”指示失败。

       “3”指示语法错误。

如果您指定 -r 并且需要重新启动,则在处理完所有设备后,将在无任何警告信息的情况下重新启动。

如果您指定 -m:\\computer 并且命令对远程计算机不起作用,将报告一个错误。

为便于交互,DevCon 允许在实例 ID 中使用通配符。不要根据一台计算机或一种操作系统版本去推测有关另一台计算机或另一种操作系统版本的实例 ID 格式的任何信息。

       回到顶端

       --------------------------------------------------------------------------------

       这篇文章中的信息适用于:

Microsoft Windows Driver Development Kit (DDK)

Microsoft Windows XP 驱动程序开发工具包

Microsoft Windows Server Driver Development Kit

TLVAIC的应用

       TLVAIC的应用:

       åŸºäºŽDDK的TLVAIC型编解码器的驱动设计

       DSP/BIOS Driver Developer’s Kit(DDK)是TI为简化驱动程序开发为TMS系列DSP及其EVM板等提供的驱动程序开发套件。该套件为TMS系列各种外围器件提供完整的标准化驱动程序模型,使得驱动程序可以很方便地移植到其他应用中,大大提高驱动程序开发的效率。DDK是对每种TMS系列DSP都提供的芯片支持库(Chip Support Library—CSL)的补充,CSL提供对外围器件寄存器配置及初始化等的低级控制,DDK完全通过CSL来对外围器件进行控制。简单地说。DDK建立在CSL上层.所以用DDK来开发驱动程序将更为快捷且可移植性更好。

       DDK为开发驱动程序定义了标准模型和一系列的API。为简化程序设计。标准模型又被分为二个层次.其中高层称为Class driver,低层称为Mini—driver。Class drivei与器件相对独立.完成诸如缓冲区管理和请求同步等功能.同时扮演着与API和Mini—driver二者接口的角色。Mini—driver完成特定的器件初始化和控制功能.它符合IOM(I/O Mini—driver)的接口标准。DDK的这种分层结构使得驱动开发人员仅需了解单一的Mini—driver API就可以完成整体外围器件的驱动设计,而且这一过程比设计整个驱动程序要简单得多,因为Class driver控制了缓冲区管理和同步等。DDK提供3种Class driver.分别为SIO/DIO、PIP/PIO和GIO,它们都可以和任何Mini—driver结合使用。

       2 TLVAIC的驱动设计基础

       DDK的标准模型结构如图1所示。高层的应用和底层驱动相互没有直接的关联,开发中只需通过Class driver控制Mini—driver。

       ä¸‹é¢ä»¥DM EVM板为例.说明基于DDK的TLVAIC的驱动程序设计方法。

       é¦–先,需要使用配置工具建立驱动程序的入口。在DSP/BIOS con_fig下的cdb文件中.依次选择In-puffOutplut---Deviee Drivers→User→defined Drivers.在这些例程中一般已经添加了udevCodec.如果需要的话,用户可以自行添加或编辑。右键单击选择Properties选项来编辑其属性,其属性应设置如下:

       Comment:可以加入自己的注释

       lnit function:键入EVMDM_EDMA_AIC一init

       Function table ptr:键入 EVMDM_EDMA_A-IC一Fxn8

       Function table type:选择IOM_Fxns

       Deviceid:该项会被自动忽略.因为DM EVM板上只有一块TLVAIC

       Device params ptr:TLVAIC参数结构的入口指针.使用缺省参数时设为0x0

       Device global data ptr:必须设置为OxO

       æ­£ç¡®é…ç½®é©±åŠ¨ç¨‹åºå…¥å£åŽï¼Žå°±è¦æŒ‰ç…§éœ€è¦è®¾ç½®ç›¸å…³çš„参数。下面具体讨论TLVAIC参数的设置。

       TLVAIC的参数结构体原型如下:

       typedef struct

       åœ¨ä¸€èˆ¬åº”用中。上述结构体的大多数参数无需更改,需要修改的主要是aieConfig.它是TLVAIC控制寄存器值.需要通过它来控制TLVAIC的工作模式、输入/输出选择、采样率等重要参数。

       é™¤äº†å¤ä½å¯„存器外.TLVAIC共有9个控制寄存器.每个寄存器控制字长为9bit.地址位为7bit,共有bit。地址位为高7位而控制字在低9位。具体如下:

       Register0:左声道输入音量控制,缺省值为 0x

       Register1:右声道输入音量控制,缺省值为 0x

       Register 2:左声道输出音量控制。缺省值为OxF9

       Register 3:右声道输出音量控制,缺省值为OxF9

       Register 4:模拟音频通道设置.缺省值为Ox

       Register 5:数字音频通道设置。缺省值为0x

       Register 6:节电模式控制.缺省值为0x

       Register 7:数字音频接口格式控制,缺省值为0x

       Register 8:采样率控制,缺省为kHz,对DMEVM板.缺省值为Ox

       Register 9:数字音频接口激活开关.缺省值为0x

       é€šå¸¸æƒ…况下需要修改的寄存器包括4号和8号寄存器.即选择是由mic输入还是由line in输入和根据需要选择采样率。这2个寄存器的详细配置如下:

       4号寄存器配置见表1,其中,D2位。INSEL(In-put select for ADC)是输入选择,“O”为line in;“l”为mic.D1位MICM(Microphone mute)是mic静音开关.为“l”表示静音。DO位MICB(Microphone boost)如设置为“1”将为mic输入提供dB的增益。8号寄存器配置见表2,其中,采样率控制位为D5~D2的SR[3:O]。对于DM EVM板,设置方式见表3。

       å¯è§ï¼Žéœ€è¦é€šè¿‡4号寄存器的D2来选择输入,同时考虑Dl和DO对mic的控制;采样率的控制通过设置8号寄存器的SR[3:0]来实现。

       3 TLVAIC的驱动配置方法

       å¾ˆå¤šåˆå­¦è€…在运行DM EVM的echo或其他音频例程时,最容易碰到的问题是通过line in输入时有输出.而通过mic输入时没有输出,更不要说改变采样率了。即使参考资料编辑aic-h和emvdm_edma_aic.h修改Dcfauh参数仍然无法解决。

       å‡ºçŽ°è¿™æ ·çš„问题时。首先要了解TLVAIC的模拟音频输入为mic和line in二选一的,其次要知道如何能够正确配置TLVAIC的参数使之满足特定应用的需要。如果仔细分析echo例程和其他音频例程的话,可以发现只有在echo例程中包含了aie.h和emvdm_edma_aie.h 2个头文件。其实在echo例程中.所包含的这2个头文件和TLVAIC的初始化语句实际并未使用。如果屏蔽掉对这2个头文件的包含以及TLVAIC的初始化语句,会发现编译后仍然能够正常运行。实际上echo例程中的TLVAIC初始化语句只是提供了对Ⅱ,VAIC进行配置的一种方法而并未直接使用。该方法在DDK包的emvdm部分说明文件中也已提及。

       ç”±äºŽåœ¨echo例程中初始化驱动程序人口和其他的音频例程一样使用了默认参数,而默认参数是通过调用DDK包中的evmdm_edma_aic.库获得的.该库不变则配置也不变,于是就会出现上述问题。

       åœ¨æ˜Žç¡®äº†ä»¥ä¸ŠåŽŸç†åŽï¼Žé€šè¿‡å®žè·µè¯æ˜Žï¼Œæœ¬æ–‡æä¾›çš„以下三种配置方法可以适应各种应用。

       æ–¹æ³•ä¸€

       æ—¢ç„¶é»˜è®¤å‚数是通过调用evmdm_edlna_a-ic.库获得的.那么自然可以通过修改该库来达到修改参数的目的。TI提供的DDK包中包含了各种库的源代码.这使得修改库文件成为可能。本文用到的库生成工程是tiddksrc\audio\evmdm目录下的evmdm_edma_mc_.pjt,只需要打开该工程.修改其中aic.h中的默认参数,重新编译就能生成新的库文件。这样,所有的音频例程都会默认按修改过的参数运行。

       è¿™ç§æ–¹æ³•é€‚合TLVAIC参数配置相对固定的应用场合。配置完全通过调用evmdm_ed_ma_aic.库初始化时进行.不用在应用工程文件中添加任何附加代码.使得工程文件更简洁.可移植性更高。

       æ–¹æ³•äºŒ

       è‡ªå®šä¹‰ç¬¦åˆæ ‡å‡†ç»“æž„EVMDM_EDMA_A.IC一DevParams的结构体,例如:

       ç„¶åŽå°†â€œ_myParms”作为Device params ptr在指定人口指针时替代默认的0x0。这就符合TI推荐的方法,在echo例程中的相关代码也说明了这种方法。

       è¿™ç§æ–¹æ³•èƒ½å¤Ÿé€‚应几乎任何使用情况,初始化参数自定义非常明确,代码易读性较高。但是不建议像echo例程中那样直接包含默认参数的头文件.最好参照该头文件定义自己的结构体。

       æ–¹æ³•ä¸‰

       é€šè¿‡ä»”细分析生成evmdm_edma_aic.库的源代码,可以发现对TLVAIC寄存器的设置是通过AIC_setParams()函数来完成的。在大多数情况下,只要修改寄存器值而不必修改标准结构EVMDM_EDMA_AIC_DevParams结构体中的其他变量。所以可以调用AIC_setParams()函数来完成对TLVAIC参数的配置。这样就只需要定义1个符合标准的寄存器数组.将数组名作为参数来调用AIC_setParamsf()函数就可以达到目的。

       è¿™ç§æ–¹æ³•ä½¿ç”¨çµæ´»ï¼Œä»£ç é•¿åº¦å¾ˆçŸ­ï¼Œå«ä¹‰éžå¸¸æ˜Žç¡®ï¼Œå¯ä»¥ç”¨ä¸åŒå‚数多次调用.尤其适用于TLVAIC参数可变的特殊场合。

       åœ¨å®žé™…工作基础上对TLVAIC参数配置提出了3种方法,各有特点且都十分实用。在进行基于DDK的TLVAIC驱动程序设计时.可以根据需要方便地选用。