首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏phodal

    Rust: 编译驱动开发

    让我来 copy 一下 Rust 是由 Mozilla 主导开发的通用、编译型编程语言。设计准则为“安全、并发、实用”,支持函数式、并发式、过程式以及面向对象的编程风格。 编译驱动 我记得我听闻到的一个关于 Rust 的观点是:只要编译成功,基本呢,不会出错。比如烦人的内存泄漏之类的问题(当然还是会有一些的,只是要写出来并不是那么容易)。 编译器内建了强大的纠错功能。 它把我们在运行时遇到的问题,提前到了编译时。也因此,相比于其它语言,它可能会降低你的开发速度。 并在编译时失败,以强迫你修复潜在的漏洞。 这其实是个缺点,哈哈哈。 交叉编译 在 Go 一样,在这一点上远远比 C/C++ 还是优秀。 学习成本 + 处理更多的细节 大抵这是一门系统集成编程语言,对于原先我们使用的那些编程语言来说,原先的这些事都是由 bug 和编译器来体现。于是乎,我们要处理更多的细节。

    1.6K20发布于 2020-07-13
  • 来自专栏咖啡走糖

    linux内核编译AX99100驱动

    linux内核版本:4.14 pcie转四路串口芯片:亚信的AX99100 linux内核里是没有这块芯片的驱动的,这里自己添加驱动进去进行编译。 1.从亚信官网下载该芯片的linux驱动https://www.asix.com.tw/cs/download.php? linux-marvell/drivers/tty/serial下的Kconfig,增加 source "drivers/tty/serial/99xx/Kconfig" 7.在linux目录下,使用你自己的编译器进入 menuconfig) 8.进入到Device Drivers > Character devices > Serial drivers目录下,勾选以下两个刚才添加的选项,并把8250的两个选项取消选中 9.进行编译 ,这样就把AX99100的驱动编译进内核里了,验证一下系统起来可以看到四路串口,ttyF0~ttyF3。

    9.9K31编辑于 2022-11-05
  • 来自专栏Eureka的技术时光轴

    WDK驱动编译错误CN=WDKTestCert>

    TBC_Driver C:\Program Files (x86)\Windows Kits\10\build\WindowsDriver.common.targets 1360 修改方法: 右击驱动工程

    1.4K10发布于 2019-11-14
  • 来自专栏嵌入式项目开发

    Linux驱动开发: Ubuntu(PC机)系统上编译驱动并加载测试

    make -C $(Linux_ADD) M=`pwd` modules gcc spectrometer_app.c -o app obj-m +=spectrometer_usb_drv.o 编译安装测试 @wbyq:/mnt/hgfs/linux-share-dir/linux_c/usb_dev_ubuntu# rmmod spectrometer_usb_drv.ko 关于日志显示的问题: 驱动程序正常会使用 printk向终端打印调试信息, 如果驱动安装之后当前终端没有反应,可以先使用dmesg命令查看日志里是否有输出。 次设备号:53 [137747.993173] usbcore: registered new interface driver spectrometer_usb_drv 三、顺便说下嵌入式Linux驱动 Makefile编译方式 Linux_ADD=/home/wbyq/work/linux-3.5/linux-3.5 app_dev: make -C $(Linux_ADD) M=`pwd` modules

    2K20编辑于 2022-01-17
  • 来自专栏码农笔录

    Linux(Centos) Python编译安装达梦驱动 dmPython

    安装完 DM 数据库软件后,在安装路径下的 drivers 目录下,可以找到 dmPython 的驱动源码,由于提供的是源码,需要自己编译安装。 unzip python-126594-20201027.zip 3.编译驱动包 cd 驱动源码解压目录python/dmPython_C/dmPython python setup.py install unzip python-126594-20201027.zip 3.安装gcc 编译安装必须要GCC,如果没有安装请先安装 yum install gcc 4.设置环境变量 设置 DM_HOME 环境变量为某个目录 DM 数据库的相同操作系统的机器上拷贝,或者下载我这可用的文件点击下载dpi文件 把dmserver/drivers/dpi下的所有文件复制到/data/publish/python/dmdbms 5.编译驱动包 yum install python-devel //python3 yum install python3-devel 然后执行 python setup.py install 编译成功的记过如图所示

    6.6K10编辑于 2021-12-06
  • 来自专栏Rust语言学习交流

    【Rust日报】在Rust中使用编译驱动开发

    tab=readme-ov-file postgresql-embedded - 将pg像sqlite那样使用 用了这个工具,你可以在编译时或运行时自动安装打包 pg 的程序,并在运行时启动独立的pg进程 https://github.com/theseus-rs/postgresql-embedded 类似的还有这个项目:https://crates.io/crates/pg-embed 在Rust中使用编译驱动开发 讲了TDD,讲了具体的事例来说明如何高效地利用Rust编译器来帮助开发。 https://www.youtube.com/watch?

    21510编辑于 2024-07-02
  • 来自专栏IOT物联网小镇

    Linux驱动实践:带你一步一步编译内核驱动程序

    目录 学习的困惑 实践环境 编译进内核 编译驱动模块 资料下载 别人的经验,我们的阶梯! 大家好,我是道哥。今天给大家分享一些笔记本里的一些存货: Linux 系统中的驱动和中断相关。 实际操作一下:如何把一个最简单的驱动程序(hello),按照 2 种方式进行编译编译进内核; 编译为一个独立的驱动模块; 实践环境 为了便于测试,以下操作都是在 Ubuntu16.04 操作系统里完成的 M 标记意思是编译驱动模块。 编译驱动模块 编译驱动模块,也有两种 操作方式: 编译所有的驱动模块 在执行 make ARCH=x86_64 menuconfig 指令的时候,把 hello 配置成 M; 然后在 linux- 只编译 hello 这一个驱动模块 另外一种编译驱动模块的方式是:进入hello目录,只编译这一个驱动模块。

    4K30发布于 2021-11-15
  • 来自专栏智能大石头

    如何部署编译NDIS驱动的环境(内部资料)

    执行下面的Launch Program,打开一个VC的IDE,从这个IDE打开驱动项目,就可以编译了。 4,先不要急着编译自己的项目,还要准备一些工作。 等待编译完成,如果出错,可能是上面的步骤出错。 7,大功告成,这下可以编译自己的驱动了,不过,记得用第3步所说的步骤打开VC。 一些解释: 1,如果用中文版,编译通不过可不要怪我。 3,通过DS的程序来驱动VC,其实过程是这样的:DS首先启动一个批处理文件,批处理文件里面会设置一些环境变量,这些环境变量是会话级的,然后再启动VC,这样,在VC中使用DS的Build的时候,就会用到那些环境变量了 当然,如果把这些环境变量写入到系统环境里面,也许可以编译吧,没试过。 4,编译VdwLibs.dsw,是为了编译一些DS的库,因为许多驱动会用到DS的库的,如果你没有编译这个,很有可能编译驱动通不过。 它们提供了DDK的编译环境,使用很简单,打开后进入一个命令行窗口,切换到驱动所在的目录,执行Build命令,它就会开始编译该目录的驱动

    1.1K90发布于 2018-01-15
  • 来自专栏最高权限比特流

    将hello程序作为驱动程序编译进系统内核

    0x00开始 恩,可能是我比较愚钝,一个内核编译搞了一天,各种问题,各种bug,几度无奈,也是因为我突发奇想,并没有按照原来的那种操作,我直接把helloworld程序放到内核模块中编译成了一个驱动程序 好了,废话不多说,直接开始还原我的helloworld驱动内核程序编译流程。 此时的驱动程序的编译取决于一个特殊配置 CONFIG_HELLOWORLD配置选项。 ” 由于我们是将这个程序的当做驱动程序来启动,所以在执行命令: make menuconfig 后,在DeviceDrivers菜单下选择helloworld驱动,按空格键将选项前面的标志调整为[*]即可 大约在虚拟机编译下两个小时左右,编译工作就完成了。

    1.7K30发布于 2019-02-21
  • 来自专栏OneCode 低代码

    深度解析 OneCode 混合编译:创新驱动的开发变革

    本文将深入剖析 OneCode 的混合编译机制,揭示它如何为软件开发带来前所未有的变革与优势,同时也将详细阐述 OneCode 独特的统一代码模型,并探讨领域驱动设计(DDD)与混合模型之间的协同关系, 添加图片注释,不超过 140 字(可选)一、混合编译的概念基础混合编译,简单来说,是一种融合多种编译技术与编程范式的创新编译策略。 五、DDD 与混合模型的协同融合添加图片注释,不超过 140 字(可选)在 OneCode 的体系中,领域驱动设计(DDD)与混合编译及统一代码模型实现了深度的协同融合。 例如,对于传感器数据的采集和处理部分,可以使用 C 语言来编写高效的底层驱动程序,确保数据的快速采集和准确传输;而对于数据的存储和分析部分,可以利用 Java的数据分析库进行数据处理和挖掘;在用户界面端 从 DDD 的角度来看,可将物联网系统划分为设备管理、数据处理、用户交互等限界上下文,不同编程语言在对应的上下文中各司其职,共同推动系统按照领域驱动的方式高效运转。

    32110编辑于 2024-12-22
  • 来自专栏Script Boy (CN-SIMO)

    vs2019 内核驱动编译失败:网络共享盘问题

    怀念2008 我以为这个年代了,中文路径问题应该解决了,记得vs 2008写c的时候曾因中文路径的问题导致编译不通过,从2015版本开始发现有时候项目名称和路径里包含中文也可以编译通过了,习惯之后后面所有的编译报错问题很难再去想到中文路径上去 一次在编译内核文件的时候,发现总是编译失败,起初有一些常见的错误,例如inf文件校验,通过修改项目属性解决之后没有任何的报错,依然编译失败,没有报错的error是最气人的。 1>Z:\项目\C\内核驱动编程\testDriver\testDriver.inf : error 1299: Additional validation checks skipped due to 但是呢,将项目移动到Z盘,所有路径改成英文的,编译仍然失败: ? 那看来不是中文路径的问题了,是我错怪了时代的发展。 这样的话,我大概知道是什么问题了,Z盘是我挂载的网络共享盘,磁盘格式既不是NTFS也不是FAT32,换成本地磁盘后编译通过。

    97810发布于 2020-06-09
  • 来自专栏开源技术小栈

    如何在 PHP 8.3 上编译安装 Event 事件驱动扩展库?

    PHP Event 扩展是 PHP 的一个扩展库,用于处理事件驱动的编程。它提供了一种机制,使开发者能够创建、监听和处理事件。 依赖 libevent库: libevent 是一个轻量级的基于事件驱动的高性能的开源网络库,并且支持多个平台,对多个平台的I/O复用技术进行了封装,当我们编译库的代码时,编译的脚本将会根据OS支持的处理事件机制 ,来编译相应的代码,从而在libevent接口上保持一致。 /configure --prefix=/usr/local/libevent-2.1.12 编译安装 make && make install 查看是否安装成功 $ ls -al /usr/local with-event-libevent-dir=/usr/local/libevent-2.1.12/ 指定 libevent 支持库的目录路径 --with-event-libevent-dir 编译

    1K10编辑于 2024-01-02
  • 来自专栏全栈程序员必看

    【Cubieboard2】配置编译内核支持SPI全双工通信驱动

    1,cubieboard2 A20系列,无论是官方还是社区的系统,默认都是不支持SPI总线驱动的。需要重新编译配置内核,修改文件才能支持SPI全双工通信。 /scm/linux/kernel/git/torvalds/linux.git (2)找一台安装了Ubuntu系统的机器,将源代码解压并进入解压根目录;(也可以直接在Cubieboard2板子上进行编译 pabort("error"); } else pr_debug("SPI - LookBack Mode OKn"); } return ret; } 上面两项都测试通过了,那么你的SPI内核态驱动已经完成了 剩下的就是根据需求编写用户态驱动了;(很简单,就是跟操作文件一样) 4、注意事项: (1)如果你的Cubieboard2 Debian是从NAND启动的,那么在重新编译内核的时候需要增加NAND的驱动支持 ,具体方法可以 make ARCH=arm menuconfig 或者直接修改.config 文件将NAND相关部分改为y 默认是不支持NAND驱动的; (2)使用逻辑分析仪进行分析是非常可靠的。

    1.2K20编辑于 2022-09-16
  • 来自专栏韩曙亮的移动开发专栏

    【嵌入式开发】 Linux Kernel 下载 配置 编译 安装 及 驱动简介

    : make 可以进行多作业并行编译, 在多核的机器上这样进行编译效率很高; -- 并行编译弊端 : 如果 Makefile 出现依赖错误, 并行编译会报错, 使用 单作业 make 可以编译通过, 驱动和模块 驱动概念 :  -- 实现位置 : 驱动在内核中实现, 一般在内核中的 driver 目录下; -- 驱动作用 : 驱动的作用是提供 机制(实现什么功能), 不是提供 策略(用户如何使用这种功能 : 内核为每个驱动创建不同的模块, 实现驱动的扩展性; 2. 驱动分类 驱动分类 : 驱动分为 字符设备, 块设备 和  网络设备; a. :  -- block : 块设备驱动; -- char : 虚拟中断驱动; -- serial : 串口驱动; -- net : 网络设备驱动; -- vedio : framebuffer 设备驱动

    3.2K51编辑于 2023-03-27
  • 来自专栏Coding迪斯尼

    动手写编译器:手动构造语法树,驱动中间代码生成

    在前面章节中我们给出了语法解析树对应节点的设计,这些节点能够针对其内容完成中间代码的输出,这一节我们继续完善必要节点的设计,然后手动构造语法树,并驱动语法树实现中间代码生成。 ) string { return s.id.ToString() } 有了赋值节点后,我们就可以针对赋值语句例如”a=b+c”来生成中间代码,此外我们还需要再增加一个节点也就是常量节点,当编译器读取到类似

    59020编辑于 2022-04-27
  • 来自专栏嵌入式与Linux那些事

    IMX6ULL驱动开发实战连载-02设备树的编译和加载

    今天介绍的是设备树的加载和编译。设备树,我也是第一次接触,在编译的时候,也是遇到了很多问题。折腾了好几次才加载成功。 设备树的编译和加载 上面介绍的编译模块是和内核一起编译的,这种编译方式比较耗时。 在Linux3.x 以后的版本才引入了设备树,有了设备树之后,只需要一次编译内核,编译内核的时候会生成的dtc 工具,利用dtc工具就可以完成驱动编译。 设备树插件的编译和加载 2.1 单独使用dtc工具编译 Linux4.4以后引入了动态设备树的概念,即我们无需编译整个设备树,只需要编译我们修改过的部分即可。 2.2 内核dtc工具编译设备树插件 编译设备树插件和编译设备树类似,这里使用内核中的dtc工具编译编译设备树插件。将xxx.dts 编译为 xxx.dtbo。

    3K20发布于 2021-05-20
  • 来自专栏24K纯开源

    记录:编译Qt5.0连接MySql5.5数据库的驱动

    这个安装包使用的是VC编译环境。因此,接下来的编译工作都是使用VS编译工具来编译的。 因为我们要编译Qt连接mysql的驱动程序,需要使用一个mysql.pro文件。这个文件就在Qt5.0源代码中。 所以的编译工作都是从这个文件开始。 (2)使用qmake生成makefile自动编译。注意大小写不能错。其中,include和Lib就是上面说的Mysql安装目录下的两个文件夹。如下图所示: ? 这个文件夹下的文件都是编译生成的新文件。 至此,编译工作自此成功结束。

    3.4K90发布于 2018-01-18
  • 来自专栏软件安装

    常用驱动修复工具推荐,驱动精灵、驱动人生、显卡驱动、360驱动大师、驱动扫描修复驱动修复,声卡驱动修复,u盘驱动修复等修复工具

    ,系统自带,系统更新,其它平台万能驱动,主板厂商提供的驱动,笔记本或者品牌机原厂提供驱动,这些都比较靠谱的,但不一定很新下面推荐几款驱动解决一下电脑问题;驱动精灵驱动人生NVIDIA专业显卡驱动360驱动大师联想乐驱动地址放在这里了 :驱动修复,驱动更新点击获取驱动精灵驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。 优势超强硬件检测驱动智能升级驱动维护智能系统状态判断一、驱动精灵是万能驱动程序利用先进的硬件检测技术,配合驱动之家近十年的驱动数据库积累,驱动精灵能够智能识别计算机硬件,匹配相应驱动程序并提供快速的下载与安装 驱动人生驱动人生是一款免费的驱动管理软件,实现智能检测硬件并自动查找安装驱动,为用户提供最新驱动更新,本机驱动备份、还原和卸载等功能。 驱动人生是一款提供电脑驱动下载和安装自动化的软件,通过驱动人生可一键安装显卡驱动、网卡驱动、声卡驱动、打印机驱动、万能网卡驱动等多种电脑所需的驱动程序,目前驱动人生已经累计为用户成功解决了10亿多条电脑驱动问题

    4.8K10编辑于 2025-06-27
  • 来自专栏HyperAI超神经

    PyTorch 2.0 重磅发布:编译编译、还是编译

    太长不看版 * PyTorch 2.0 在保留原有优势的同时,大举支持编译 * torch.compile 为可选功能,只需一行代码即可运行编译 * 4 项重要技术:TorchDynamo、AOTAutograd 2017 年 7 月,官方开始致力于为 PyTorch 开发一个编译器。 PyTorch 技术细节 自面世以来,PyTorch 中建立过好几个编译器项目,这些编译器可以分为 3 类: * 图结构的获取 (graph acquisition) * 图结构的降低 (graph lowering) * 图结构的编译 (graph compilation) 其中,图结构的获取面临的挑战最多。 官方采取了一种数据驱动的方法来验证其在 Graph Capture 上的有效性,使用 7000 多个用 PyTorch 编写的 Github 项目作为验证集。

    2.1K10编辑于 2023-02-27
  • 来自专栏渔夫

    事件驱动和消息驱动

    事件驱动和消息驱动 消息驱动和事件驱动很类似,都是先有一个事件,然后产生一个相应的消息,再把消息放入消息队列,由需要的项目获取。 他们的区别是消息是谁产生的 消息驱动:鼠标管自己点击不需要和系统有过多的交互,消息由系统(第三方)循环检测,来捕获并放入消息队列。消息对于点击事件来说是被动产生的,高内聚。 事件驱动:鼠标点击产生点击事件后要向系统发送消息 “我点击了” 的消息,消息是主动产生的。再发送到消息队列中。事件往往会将事件源包装起来。 事件驱动方式 事件发生时主线程把事件放入事件队列,在另外线程不断循环消费事件列表中的事件,调用事件对应的处理逻辑处理事件。事件驱动方式也被称为消息通知方式,其实是设计模式中观察者模式的思路。 事件驱动模型可以用下图表示(来源于《Software Architecture Patterns》): ?

    5.8K31发布于 2020-04-22
领券