自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术联盟

好好学习天天向上(qq:371079191)

  • 博客(1166)
  • 资源 (77)
  • 收藏
  • 关注

原创 PCIe 配置空间:Command 寄存器

该位为 0 时,Root Port 或者 Switch 的 Downsteam 端口收到 Memory 请求和 I/O 请求后,应该按照 Unsupported Requests(UR)处理。除了 Memory 读写请求和 I/O 读写请求,其他类型的请求不受该位控制。除了 Memory 读写请求和 I/O 读写请求,其他类型的请求不受该位控制。该位为 0 时,不允许设备发出 Memory 读写请求、I/O 读写请求。该位为 1 时,允许设备发出 Memory 读写请求、I/O 读写请求。

2023-09-05 09:03:53 86

原创 vc下修改txt文件中的一个数据

【代码】vc下修改txt文件中的一个数据。

2023-07-06 17:00:56 76

原创 vc文件全路径获取文件名称

【代码】vc文件全路径获取文件名称。

2023-07-06 16:59:56 68

原创 C语言socket传输文件

可以传输大型文件,其基本思想为把文件名字读出来放到filename数组中,然后copy到buffer中,接着将独到的文件内容接在buffer数组中文件名称后面。然后循环读取,以后每次将独到的数据放入buffer传输。TCP服务端和TCP客户端编程,完成文件传输(客户端输入文件名,服务端接收文件数据并保存至服务端本地)此文件是在Linux系统运行的,Windows中不包含socket等头文件。关于头文件可以参考socket编程中用到的头文件。关于用到的函数可以通过查询C 语言教程。下面是客户端端的代码。

2023-06-29 17:09:55 397

原创 Ubuntu 18.04安装 RT-PREEMPT 实时内核及补丁【过程记录】

Ubuntu 18.04安装 RT-PREEMPT 实时内核及补丁【过程记录】1、查看当前内核版本2、下载内核和补丁3、配置内核4、编译内核5、安装 deb 包6、reboot 并验证7、参考8、给实时内核安装 nvidia 显卡驱动8.1 进入之前的非实时内核系统中查看nvidia 驱动版本号8.2 卸载 nvidia 驱动(非实时内核中)8.3 查看适配的 nvidia 版本(非实时内核中)8.4 安装推荐版本的 nvidia 驱动(非实时内核中)

2023-05-19 10:13:14 516

原创 【UEFI实战】EFI System Table中的输入输出

gEfiSimpleTextOutProtocolGuid的安装对应到不同的情况,比如对于串口就需要有gEfiSerialIoProtocolGuid,对于显示器就需要依赖于gEfiUgaDrawProtocolGuid或者gEfiGraphicsOutputProtocolGuid等与图形输出有关的protocols。这里有一个循环,可以起到多个位置打印的效果,而ConSplitterTextOutAddDevice()可以增加输出位置。DEBUG,它一般通过串口输出,这个是调试的时候最常用的;

2023-05-09 11:32:40 578

原创 【UEFI实战】Linux下如何解析ACPI表

上述的iasl工具获取ACPI表需要从特定目录去拿,比较复杂,这里还可以用一个简单的工具acpidump来获取。iasl是一个编译和解析ACPI的工具,在编译UEFI的时候也是必不可少的。之后就可以通过iasl命令来解析ACPI文件了。本文介绍如何在Linux下查看ACPI表示。以上就是对APCI表在Linux下解析的一些说明。所以需要借助额外的工具来查看。

2023-05-09 11:32:36 771

原创 【UEFI基础】ACPI基础

为了让OSPM能够控制计算机上的设备的资源和热插拔,ACPI提供了一种描述这些设备的信息和控制方式的结构,称为ACPI Definition Blocks,它们按照一种层级结构组织,这种组织方式成为ACPI Namespace。因为OS控制了设备和CPU的电源和性能,所以也需要通过ACPI来管理温度,ACPI中可以方便的定义温度区域,温度指示器和冷却温度区域的方法。ACPI表描述了计算机包含的设备以及它们的电源状态(D状态,D0表示正常状态,数字越大性能和耗能越小),使设备进入不同电源状态的控制方式。

2023-05-09 11:31:22 1229

原创 UEFI开发探索13 – 访问PCI/PCI-E设备1

从实践中知道,PCI I/O Protocol可以访问改在在主板上的所有PCI设备,而PCI Root Bridge I/O Protocol不能访问PCI to PCI桥设备。UEFI Spec中有两个protocol可以访问PCI设备,PCI Root Bridge I/O Protocol和PCI I/O Protocol。配置空间包括一系列的PCI配置寄存器,其实现位置可以在PCI配置空间中,或者IO空间,也可以直接在申请的memory空间中实现。代码中以此函数,获取所有能找到的PCI设备。

2023-04-23 15:48:14 476

原创 Uefi编程 检查Pcie设备是否支持ASPM功能

WritePci.c (待完善,需要保持其他寄存器值不变)对pci设备某个寄存器实现写功能。WritePci.inf文件。Aspm.inf文件。

2023-04-23 12:39:03 296 1

原创 如何在飞腾平台上安装Ubuntu操作系统

注意: 若主板上配置的是NVME硬盘,在进行内核配置时,需要将内核的NEME驱动勾选上,否则移植内核时,无法找到文件系统,进不去操作系统。可以通过rufus软件将镜像做到U盘中,本次使用版本为Rufus 3.9.124 ,其他版本也可以。不要下载live版本的,没有准备网络环境,是一个头疼的事情,笔者暂时没有实现网络安装。将U盘接到主板usb口上,接上串口,显示器,,必需串口有打印才可以安装。可以通过dd命令,将iso安装到U盘。安装的是最小系统,缺少很多命令,需要联网更新,或则更换飞腾专用内核。

2023-04-23 09:24:22 744

原创 读取飞腾套片X100内部温度和chipID

上面返回共16字节有效数值0x4b 0x50 0x41 0x30 0x34 0x39 0x30 0x31 0x33 0x32 0x31 0x39 0x30 0x30 0x30 0x30,转换成ASCII字符串,即“KPA0490132190000”。sudo i2ctransfer -f -y 1 w10@0x18 0x00 0x70 0x02 0x10 0x28 0x00 0x00 0x00 0x01 0x01 //低32bit。//读取chipID 高32-bit。//读取chipID。

2023-04-23 09:21:14 524

原创 coreboot & seabios

seabios现在是很多虚拟机的默认启动bios,这跟它的短小精干有很大关系,也跟它提供比较完备的legacy支持有关。按照以下步骤把seabios制作成coreboot的payload,最新的代码是seabios v1.7.3.1建议先试用seabios v1.7.2,因为下面提供的参考.config文件基于seabios v1.7.2。如果运行该命令时报错,一般可安装所需的library解决。

2023-04-17 09:59:51 437

原创 在Ubuntu18.04或者20.04下搭建edk2运行环境

4.安装OpenSSL* Crypto 库:https://github.com/openssl/openssl/archive/OpenSSL_1_1_0g.zip,下载解压至目录UDK2018\CryptoPkg\Library\OpensslLib,并命名为openssl。1.下载edk2源码https://github.com/tianocore/edk2/releases/tag/vUDK2018。也可下载最新版edk2。(最好下载Linux下的.tar.gz类型的源码文件。

2023-04-15 11:46:53 278

原创 Ubuntu16.04 python2.7升级python3.5

安装完成之后,你在终端中输入python,输出的信息里面会提示是2.7版本的,也就是说默认打开的并不是刚才安装好的3.5,所以还需要我们重新修改一下链接。正常情况下,你安装好ubuntu16.04版本之后,系统会自带 python2.7版本,如果需要下载新版本的python3.5,就需要进行更新。输入你的密码后会下载,刚才下载的Python程序被安装在usr/localb/python3.5 中。2.指定默认打开的是python3.5版本(你新安装的python版本)。至此,python版本更新已经完成。

2023-04-15 11:43:25 594 1

原创 Ubuntu 18.04系统中可用并行算法库的GCC-9安装

使用C++17需要gcc为7.0以上版本即可,但要使用C++ 17 STL并行算法库,必须是9.1以上版本。Ubuntu 16.04系统中使用GCC 9.1及Intel TBB库运行C++17 STL并行算法库。如果输入选项2,则会将系统默认调用的gcc版本定为9。我需要使用并行库,但gcc为7.5版本,故有此文。可以看到我这里是gcc7.5。如果还想装其他版本可参考链接。接下来TBB的安装请参考。

2023-04-15 11:40:31 648

原创 UEFI Device Path (1): 重新认识Device Path

每个variable的内容都包含1个Device Path,这个Device Path表示每次开机默认使用的用于该种用途(ConIn,ConOut, ErrOut)的Console Device,UEFI应用可以通过这个Device Path来确定对应的Console Device。Messaging Device Path IDE设备,USB设备,SATA设备,SAS设备,SCSI设备,UART设备,Vendor自定义对象,MAC地址,IPv4/IPv6地址,其他新兴设备。

2023-04-06 08:21:54 525

原创 UEFI BootOption Variable存储字节流

可以看到Boot0000,Attribute 0x108, 是unactive的,FilePathSize 0x2c,描述就是,**** Setupo Utility。可以知道Attribute占4个字节,路径长度FilePathSize 2个字节。然后是设备描述,是Unicode字串串,以0x0,0x0结尾,然后跟着的就是FilePath.图中的Boot0000就是存储启动项Boot0000的属性变量名称,启动路径的数据。这个是BootOption结构体,但是实际上的存储并不是按照这个格式存储的。

2023-04-03 21:23:29 392 1

原创 Ipmi 之Boot Option

找到之后判断一下如果这个BootType和之前的不一样,那就调用通知的函数,也就是给bmc发送命令的函数IpmiSetBootFlags,如果发送成功,更新一下对应的variable。在bios启动过程中,到Bds阶段,会遍历所有的BootOption,并创建BootOrder variable,然后会根据BootOrder中的顺序,来获取第一启动项,并通过variable Boot000#(# 代码启动顺序的id,数值0-N),下面详细的看一下遍历系统启动项,已经注册Boot000#的过程。

2023-04-03 21:17:37 816 1

原创 UEFI下BootOption

如果BootOption不是这种NVME,比方说,你想要设置一个硬盘里面的/test/test.efi作为一个启动项,你可以使用PciRoot(0x0)/Pci(0xF,0x0)/Pci(0x0,0x0)/NVMe(0x1,3E-12-30-80-44-A7-79-64)/HD(6,GPT,C75CD876-DC80-4DF8-B6A4-7B2111703BA6,0x16E7B000,0x3C78000)/\test\test.efi。其中OptionNumber就是0,1,2,3,4,5依次递增。

2023-04-03 21:10:34 794 1

原创 UEFI shell - 脚本文件startup.nsh

edk2/ShellPkg/Application/Shell/Shell.c

2023-04-03 15:38:04 857

原创 【UEFI基础】OVMF设置默认启动项为UEFI Shell

当然如果需要设置其他的启动项为默认项,只需要修改BootOptionPriority 中 StrCmp (BootOption->Description, L"EFI Internal Shell")为 StrCmp (BootOption->Description, L"XXXX")。之前由于NT32编译的虚拟环境一直卡在中途,无法进入Shell,一直使用的是OVMF. OVMF确实挺好用的,只是进入shell环境时网络启动一直优先,太费时间了,正好看到CSDN里面的博主有改了这块。

2023-04-03 11:55:49 174

原创 BIOS PEI Phase涉及模块函数一览

硬件相关初始化动作,大部分都是在Pei Phase、Dxe 前期Non EFI Driver Model的Driver, 初始化Processor、Chipset或Platform,当然有些也通过Oprom 或file in an EFI System Partition来进行初始化。主要功能是加载并连接驱动程序,管理并启动引导项。在引导操作系统之前会初始化设备(USB键盘鼠标,VGA设备等),然后通过Variable功能来控制启动顺序,根据启动策略加载对应的引导项,启动操作系统或应用程序。

2023-04-03 08:16:30 311 1

原创 BIOS的BDS阶段解析

硬件相关初始化动作,大部分都是在Pei Phase、Dxe 前期Non EFI Driver Model的Driver, 初始化Processor、Chipset或Platform,当然有些也通过Oprom 或file in an EFI System Partition来进行初始化。主要功能是加载并连接驱动程序,管理并启动引导项。在引导操作系统之前会初始化设备(USB键盘鼠标,VGA设备等),然后通过Variable功能来控制启动顺序,根据启动策略加载对应的引导项,启动操作系统或应用程序。

2023-04-03 08:16:19 437

原创 PEI阶段扩展——pei和dxe之间通过hob传递参数

传入的参数第一个为Hob的GUID,所有的UEFI元素都有自己的GUID,传入得到的返回结果就是HOBlist ,通过的是configration table去抓的(属于systemtable的成员),每个DXE Driver的entrypoint都有两个参数imaginehandle 和systemtable,故而可以通过systemtable可以访问整个系统的资源。在PEI和DXE之间通过HOB 传递参数。这里的既定顺序即Dependency顺序,就是inf文件里面的depx,只有满足条件才会执行。

2023-04-03 08:14:35 478

原创 UEFI启动过程与协议加载顺序

HOB在PEI到DXE传送信息的过程遵循one Producer to one Consumer的模式,即在PEI阶段,一个PEIM创建一个HOB,在DXE阶段,一个DXE Driver使用那个HOB并且把HOB相关的信息传送给其他的需要这些信息的DXE组件。其中一个队列存放当前已经满足依赖项,可以加载的驱动的指针,另一个则存放当前已经找到但还未满足加载条件的所有驱动的指针,调度器每循环一次都会完成第一个队列中一个驱动的加载,同时将第二个队列中的项目检查一遍,若已满足依赖项则移到第一个队列中。

2023-04-01 07:54:04 549 1

原创 UEFI 基础教程 (十四) - 设置默认启动项为UEFI Shell

设置Shell为默认启动项后,BIOS启动会优先加载Shell(对于OVMD而言就不用等待前面的PXE、QEMU USB加载了, 可以节省时间)。当然如果需要设置其他的启动项为默认项,只需要修改BootOptionPriority 中 StrCmp (BootOption->Description, L"EFI Internal Shell")为 StrCmp (BootOption->Description, L"XXXX")。二、 编译生成EFI文件 & 运行。

2023-03-31 10:37:23 731 1

原创 UEFI 基础教程 (三) - 运行第一个PEI Driver

一、 编写源代码编写C:\edkii\OvmfPkg\MyHelloWorldPEIMDriver\MyHelloWorldPEIMDriver.cEFI_STATUSEFIAPI编写C:\edkii\OvmfPkg\MyHelloWorldPEIMDriver\MyHelloWorldPEIMDriver.inf[Defines][Sources][Packages]BaseLibDebugLib。

2023-03-31 10:09:05 315 2

原创 SeaBIOS实现简单分析

当段寄存器被重新赋值的时候,就根据段选择子,从存储器中读取GDT中的项,然后将段基址以及其他的段描述符信息存储在这个段寄存器对应的段描述符高速缓冲寄存器中。笔者猜测这一一点的实现方式是通过段描述符高速缓冲寄存器实现的(实模式下也是通过查询这个寄存器来获得段基址的),开机的时候代码段的对应基址项被设置成0xFFFF0000。从代码的Read sector部分可以看出,boot_disk将读取使用bootdrv指定的磁盘驱动器上,0磁头,0柱面,1扇区为起始位置,扇区数为1(512字节)的一段数据。

2023-03-29 09:26:56 399 1

转载 【UEFI实战】HII之vfr文件

https://blog.csdn.net/jiangwei0512/article/details/122824342

2023-03-23 21:18:30 204

原创 UEFI--form之间的关系(驱动调用)

顶层AdvancedManager.c。

2023-03-22 22:29:42 47

原创 UEFI错误:Instance of library class [ShellCEntryLib] is not found

两处修改。

2023-03-22 21:07:28 340

原创 UEFI 基础教程 (十四) - Variable的使用

UEFI Varible 可以用作不同driver之间的通信, 是一种非常好的模块共享机制。Variable 的服务由BS,RT, SMM提供,在不同的phase应该使用对对应的服务。如在SMM handler下就应该使用。还可以通过Shell下的命令setvar,dmpstore ,来查看新建Variable的值。二、 编译生成EFI文件 & 运行 UEFI APP MyVariable.efi。PEI Phase 使用如下(注意PEI阶段没有setvariable 操作)

2023-03-20 22:47:29 383 1

原创 UEFI 基础教程 (十三) - VFR,HFR 简单使用 oneof btn

运行edksetup.bat && build -a X64 -p OvmfPkg\OvmfPkgX64.dsc -D DEBUG_ON_SERIAL_PORT -t VS2013x86编译整个OvmfPkg Package。添加字符串资源到 MdeModulePkg/Application/UiApp/FrontPageStrings.uni。在UEFI平台可以通过修改 VFR/HFR等相关文件来配置SETUP界面, 其中。UNI文件用来存放资源, C文件用作driver 用来动态更新配置值。

2023-03-20 22:43:34 449

原创 UEFI开发学习 - Variable Services

如果EFI_BOOT_SERVICES.ExitBootServices()已经被执行,没有设置EFI_VARIABLE_RUNTIME_ACCESS属性的变量将不可见,GetVariable()将会返回一个EFI_NOT_FOUND错误。有时是严重有限的容量。QueryVariableInfo()函数允许调用者获得关于可用于存储EFI变量的最大存储空间,可用于存储EFI变量的最大剩余存储空间的大小和每个EFI变量的最大空间,与指定的属性相关联。在DXE的运行过程中,会加载一个个的模块,来填满整个表。

2023-03-20 21:32:31 303

原创 【UEFI实战】HII之FrontPage

上述流程中最主要的是两个部分,”初始化Front Page“和”显示Front Page“,对应到两个函数InitializeFrontPage()和CallFrontPage(),它们可以连起来看,主要做的事情就是两个:一个是准备素材,这里的素材指的是uni文件、vfr文件等表示的HII数据;第三个参数是可选的,可以是NULL;对应的操作码可能是EFI_IFR_REF_OP、EFI_IFR_REF2_OP、EFI_IFR_REF3_OP和EFI_IFR_REF4_OP,这依赖于传入的参数值。

2023-03-18 16:57:35 535 1

原创 UEFI开发——调用一个自己编写的protocol

{0xee7ba45e, 0x9642, 0x4a97, {0x83, 0xc3, 0x30, 0xeb, 0xed, 0x3f, 0x9d, 0xd6}} //定义这个protocol的GUID。struct _EFI_COMPARE_PROTOCOL { //定义这个protocol的结构体,因为只实现比较大小,所以成员只有一个函数指针类型的成员。编写一个protocol并调用分三个部分,定义一个protocol,安装这个protocol,使用这个protocol。2.安装protocol。

2023-03-18 15:18:28 651 1

原创 UEFI开发学习6 - Protocol的创建

顾名思义,前者是只安装一个ProtocolInterface,后者可以安装一个或多个ProtocolInterface,此外,InstallMultipleProtocolInterfaces()比InstallProtocolInterface()执行更多的错误检查,因此规范建议使用InstallMultipleProtocolInterfaces()。Interface: 一个指向协议接口的指针。Handle: 指向要在上面安装新协议接口的句柄的指针,或者如果要分配新句柄,则指向NULL。

2023-03-18 11:08:25 545 1

原创 UEFI中的界面设计(一)

从底层来看,BDS也是这么做的,但它用了比较巧妙的方式——要知道,BIOS的主要功能是引导进GRUB(或者其他的),GRUB也是一个二进制文件。通过HII封装好的SetString可以修改UNI中对应TOKEN保存的内容,这样可以改变界面上显示的文字——所以我会用它显示固件信息,可以在初始化时调用函数获取,然后SetString,这样在引导进界面时,信息就会出现在屏幕上。这些都是这些交互类控件公用的,其他的根据自己的性质有不同,比如这里后面是oneof里面的选项,default说明这是默认选项。

2023-03-17 15:38:36 754 1

原创 【UEFI实战】HII之常用函数---HiiAddPackages

QuestionId:其实是一个UINT16类型的数值,它是一个在当前驱动唯一的值,通过它回调函数(由EFI_HII_ACCESS_FORM_CALLBACK声明)就能够知道需要处理的数据具体是哪个;表示的是需要安装的资源。简单来说就是将资源(代码中用Package标识,这里将其翻译为资源似乎更好理解,它表示的可能是uni文件对应的字符串、vfr文件对应的Setup骨架、字体等等)安装HII数据库中,并返回数据库的Handle,后续要使用资源就要用到这个Handle。Position初始化为0。

2023-03-13 11:36:29 462

e1000e-3.8.4.tar.gz

Intel的型号是I219-LM。但是这个型号在Intel官网上只有FreeBSD的驱动,并没有Linux的源码。 后面又发现了www.centos.org上的内容,确认了可以和e1000e的网卡驱动通用

2020-08-17

用于开发VxWorks6.8应用程序的ide开发平台

VxWorks6.8开发平台,用于开发vx程序,用 的都知道,实在不知道写啥了

2019-07-23

win7 vs2012+wdk8.0 pci驱动源码 Solution.zip

win7 vs2012+wdk8.0 搭建wdf驱动开发环境,系统:win7 x64 工具:vs2012 + WDK8.0 插件:wdfcoinstaller.msi win7 vs2012+wdk8.0 pci驱动源码

2019-05-27

后台服务监控应用

最简单的创建一个windows service程序 (1)新建一个win32控制台程序 (2)开始->运行->cmd,必须右键—>以管理员身份运行,此时进入dos命令提示符界面。 (3)输入 sc create test binPath= “D:\Code_Test\VS2012_test\test_console\test_console\Release\test_console.exe”  

2019-03-14

ffmpeg的h264推流rtmp

ffmpeg的h264推流rtmp: simplest_ffmpeg_streamer,simplest_ffmpeg_receiver

2019-01-10

删除vs垃圾

 一个vs工程达到了800MB也是彻底无语了,查找发现有ipch文件夹和sdf文件很大,可以如下设置不用这些文件,但是会影响视图,算了还是写个脚本清理清理这些垃圾吧。

2019-01-05

基于Hi3531的ONVIF高清网络摄像机视频数据接入设计

基于Hi3531的ONVIF高清网络摄像机视频数据接入设计 ,快速了解详细过程

2018-12-08

基于hi3531、x264的h264压缩

基于hi3531、x264的h264压缩,很不错的程序,有编译命令,可以直接编译运行

2018-12-05

基于HI3531d的udp命令控制basler pylon gige工业相机程序

基于HI3531d的udp命令控制basler pylon gige工业相机程序,可以通过IPAnalyse.exe监控数据包。

2018-12-05

hi3531d的dma操作

HI3531D使用DMA操作,搬运大块数据,在例子程序sample—enc的基础上修改

2018-12-05

基于hi3531、3531d的yuv压缩h264

修改hi3531、3531d的例子压缩yuv到h264,频率无法修改,效率很慢,通过修改可以实现了1024*1024的yuv的压缩,以及帧率的设置100hz等

2018-11-22

最新版hitool5.0.16

平台框架主要是集成了HiBurn,HiFastplay,HiLoader 等工具的一款平台工具

2018-11-21

基于hi3531的live555例子(发送h264)

实现将已经成流的H264数据发送到网络(根据示testH264VideoStreamer.cpp修改), 一个线程将H264数据从文件中读取出来放到缓存 live555服务器不停地从缓存中获取数据 live555广播出去

2018-11-20

hi3531\3531a\3531d\3536\3536d\3559\3559a\3519SDK

hi3531\3531a\3531d\3536\3536d\3559\3559a\3519 SDK下载,一网打尽

2018-11-16

基于basler工业相机的H264压缩

基于basler工业相机的H264压缩,Basler工业相机始终是您的理想之选。自1988年以来,Basler一直专注于开发和生产用于工业图像处理的高质量数字相机。如今,我们已发展成为全球领先企业之一。 作为世界领先的高质量工业图像处理数字相机开发商和制造商之一,我们已经拥有超过25年的行业经验。我们的相机广泛应用于工厂自动化、医疗和生命科学、智能交通(ITS)和零售等领域。

2018-10-29

dm642_PCI_INTA

DM642中断 DM642 PCI 中断 DM642 PCI中断管脚G4管脚PINTA,板子上连在PCI的J1 A3管脚INTA#上 首先需要看一下DM642的HSR寄存器 其中INTAM位代表是否使能PINTA管脚,写入1标识不是能,写入0标识使能,该位为只写位,读返回0,另外需要注意该寄存器只能从PCI Host侧写操作,即只能通过驱动从PC机操作。 INTVAL表示中断是否产生,即中断标识位,可以用来判断是否是DM642的中断 接下来是中断产生控制寄存器RSTSRC 其中INTREQ位为PINTA中断触发位,向该位写1即触发一次PCI中断 INTRST位为中断清除位,产生中断后使用该位来清中断 配置流程: 1. 首先在API的OpenDevice()函数中增加PCI中断配置,即配置HSR寄存器 然后需要创建一个win32事件,并把这个事件的句柄传递到驱动层,其中函数lPciIntEventSet()函数即向驱动层传递句柄。 2. 驱动sys工程需要配置的地方, 在DeviceControl例程中增加句柄接收IO项 当然首先要声明以下: 然后是中断例程ISR,进入后首先判断HSR寄存器的INTVAL位是否为1,即判断是否这次的中断为DM642产生的,不是的话返回FALSE,如果是,则清除中断,然后调用中断回调例程DpcFor_Irq,在该回调例程中设置API传递过来的事件句柄,触发事件 3. 在应用程序中,可以使用WaitForSingleObject()函数来等待该事件,当然需要把API的OpenDevice函数中创建的事件句柄传递过来

2017-09-13

easysys+vs2005驱动

easysys+vs2005驱动 ,使用EasySYS搭建驱动开发基本框架

2017-08-23

REALTEK刷机方法

REALTEK 是通用板最多的IC 方案之一,什么常说的2025 227020232033252525452660228026622670267226742661 2668 等等。 这个有好几个软件,而且使用方法不尽相同。

2016-12-20

STC的CDB文件

[UV2] ORGANIZATION="微软中国" NAME="微软用户", "m" EMAIL="m" TOOL_VARIANT=mdk_lite CDB0=UV4\STC.cdb("STC CPU Data Base") [C51]

2016-12-01

TCP/UDP例子

windows 下实现的TCP/UDP例子,可以跑起来,vc++6.0编译。

2015-08-29

uefi的protocol例子

对protocol的介绍也不再多说,所有的概念戴正华大佬的《UEFI原理与编程》已经讲的很清楚(虽然我看的很懵),我认为熟悉工程的最有效的方法就是实际动手编写代码,我编写的protocol的功能是比较两个数的大小,将大的数打印出来,至于这两个数是从键盘输入还是给固定的值,这都不重要,重要的是先写好一个protocol并成功调用。

2023-03-18

ko-led2.zip

arm5718下基于KO驱动程序的led闪灯程序 ,直接发送物理地址和数据

2023-01-12

arm5718下基于KO驱动程序的led闪灯程序

arm5718下基于KO驱动程序的led闪灯程序

2022-12-30

arm5718的ipc-dsp,ipc-ipu通讯

arm5718的ipc-dsp,ipc-ipu通讯

2022-12-02

nCode-GyphWorks-11简明入门教程20150723.rar

ncode学习

2021-12-11

WindowsFormsApplication1.rar

用VS自带的Chart图表控件,制作实时动态显示的折线图,和波形图

2021-08-12

netkit-tftp-0.172.zip

基于arm5718的ftp客户端

2021-06-29

基于arm5718Tcan4551的spi控制.zip

基于arm5718Tcan4551的spi控制

2021-05-14

arm5718的can总线通讯.rar

arm5718的can总线通讯

2021-05-14

firstdev.rar

arm5718 linux下的驱动程序

2021-03-16

GPIO_DSP1.rar

TI 实时操作系统SYS/BIOS例子源码

2021-03-12

test_spi_dev.rar

arm57xx 的spi测试程序、驱动源码

2021-03-11

OK5718-C 硬件手册_V1.0_2018.03.26.pdf

arm5718硬件手册

2021-03-11

OK5718-C_软件手册_V1.2_2019.06.12.pdf

arm5718软件手册

2021-03-11

Windows Embedded Standard 7 快速入门指南1234.pdf

Windows Embedded Standard 7 以组件化形式提供 Windows 7操作系统的功能、熟悉度和稳定性,能开发人员创建运行成千上万种现有 Windows应用程序和驱动程序的高级商务设备和消费类设备

2021-02-26

opencv-4.5.1-vc14_vc15.rar

opencv4.5.1最新库

2021-02-06

zbar-dll_x64.rar

Zbar库文件,win10 64位下重新编译,解决中文二维码乱码问题

2021-02-06

myBt878_Drv.rar

win10 x64 vs2019的pci驱动程序源码

2021-01-12

avc2avi.rar

H264文件转avi文件,没有用到ffmpeg的东西居然可以,还需要研究

2019-08-07

用于开发vxworks6.7的安装程序

用于开发vxworks的安装程序,可以使用的

2019-07-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除