Linux
文章平均质量分 78
Linux嵌入式开发相关知识
17岁boy想当攻城狮
在时间的大钟上,只有两个字「现在」
展开
-
嵌入式Linux上没有x-window系统环境运行qt程序的方法
在linux上运行应用程序需要x-window桌面环境的支持,一般在最小linux内核里是不具备这个东西的,但是QT的特性是跨平台,只需要加上“qws”参数就可以了如:./app -qwsapp为您的程序,qws是qt自己开发的一套Linux C/S桌面环境,在编译程序时会附加进去。...原创 2020-12-21 23:17:25 · 2088 阅读 · 0 评论 -
Linux嵌入式开发_主设备号与次设备号详解
前言在Linux内核中设备号的作用是用来区分不同的设备类型。比如:设备号23,对应的是LED设备号17,对应的是某个存储设备等等...主次设备号主设备号:对应设备的主号码次设备号:对应设备的子号码比如:你有两个LED,你注册了主设备号14,代表使用这个设备号的驱动都是LED设备,那么怎么区分1和2呢?就是子设备号,通过子设备号来区分是LED1还是LED2。内核只认主设备号,最终调用时内核会通过主设备号找到索引,这个索引就是子设备号,然后去调用这个索引指向的驱动模.原创 2021-04-25 15:58:52 · 1651 阅读 · 0 评论 -
Linux嵌入式_详解从原理图到数据手册解析PWM蜂鸣器实现
本篇文章使用开发板与上一篇文章一致:实战!手把手教你如何编写一个Linux驱动并写一个支持物联网的LED演示demo首先第一步打开电路原理图,找到蜂鸣器部分首先可以看到VDD 5V也就是说这个蜂鸣器电路需要至少5V的电流才能驱动,后面跟了一个CON2通过原理图可以看到上面有两个孔,是针孔可以在上面焊排针,或者排母把这个接口引出来,然后它接到BUZZER上面,这部分接口我的PCB板上没有引出来,所以不用这部分,这部分是直接接到蜂鸣器上的,文档里说这个蜂鸣器是有源的,给电平就可以跑的,但是没有直接的原创 2021-07-10 14:25:36 · 3367 阅读 · 7 评论 -
构建Yocto项目
简称YP, 是一个致力于帮助开发者构建自己的Linux嵌入式的项目,除了Yocto还有其它的开源项目例如:Debian,著名的Ubuntu就是基于Debian来构建的发行版。(YP)是一个开源协作项目, 可帮助开发人员创建基于Linux内核的自定义系统, 而无需考虑其硬件体系结构。该项目提供了一套灵活的Build工具, 开发者可以更快的上手去构建自己的Linux操作系统, 经过许多年的发展Yocto已经支持了许多架构, 例如:IntelARMMIPSAMDPPC。原创 2023-02-21 12:22:17 · 961 阅读 · 0 评论 -
Linux嵌入式开发_修改镜像文件输出路径
一般情况下存在于arch/架构/boot/makefile文件下如我的是arm架构,修改ZIMAGE的输出路径vim arch/arm/boot/Makefile$(obj)/zImage: $(obj)/compressed/vmlinux FORCE $(call if_changed,objcopy) @cp -f arch/arm/boot/zImage zImage.bin @echo ' Kernel: $@ is ready'原创 2021-04-17 15:53:43 · 213 阅读 · 0 评论 -
烧录OpenStLinux到Stm32mp157上
这几个都是flashlayout文件存放目录,每个目录里flashlayout布局使用的固件都不同,这些是ST根据不同的信息生成的不同固件的配置方法,其中optee和trusted是我们常用的,flashlayout以tsv文件格式作为存储,可以看到trusted目录下的内容。我的flash是emmc的,所以我使用的是flash_emmc*的配置文件,这里打开配置文件看一下,如果你的是定制板那么可以向厂商索要这个文件。在刷写之前根据你的板子拨码开关拨码到指定位置,这里我使用的是usb下载模式。原创 2023-02-22 10:09:43 · 850 阅读 · 2 评论 -
Linux嵌入式开发_设置时钟频率
在核心板上若工作的时钟频率不同则无法正常驱动工作,这是很关键的知识点。频率我们可以通过开发板的原理图查看,或者在soc(CPU)的原理图上得到也可以。这里我用的是开发板的原理图,我使用的是TQ210开发板上接到soc的时钟这块有XXT1,XXTO等,soc是靠时钟提供主频率的,若接到这块上面的就代表要与这个频率一致,否则无法正常工作,产生调频的情况。我们在原理图上看下clock这块,可以看到PLL这个工作时钟电路是接在这个上面的,就代表开发板的工作时钟频率也是24MHZ那么接下来原创 2021-04-17 14:31:06 · 1074 阅读 · 0 评论 -
Linux驱动开发_设备文件系统详解
何为设备管理器?设备管理器就是负责管理这台电脑上的外设,当我们通过电脑提供的USB口插入一个键盘、鼠标时设备管理器会与其通讯来确认你插入的到底是一个什么样的设备,然后在创建对应的设备驱动。以上的前提下是你的设备是流行设备且被操作系统的设备管理器支持的情况下,倘若我们有一个未知的设备,或者是我自己开发的硬件产品,如我们自己写的键盘,我们不使用通用键盘通讯协议,我们非要自己创建一套我们键盘自己的协议,包括内部架构、PCB都是我们自己设计的,一个全新的键盘,虽然也是键盘但是协议,与硬件架构不同于ISO标准原创 2021-05-12 11:06:05 · 3121 阅读 · 12 评论 -
移植OpenStLinux到Stm32Mp157上
OpenstLinux是st官方提供的基于Yocto和Debian构建的发行版Linux操作系统,专门为Stm32Mp1系列研发的操作系统,这里解释一下为什么OpenstLinux使用了两种构建方式,OpenstLinux使用了Yocto的Bitbake工具来进行编译方面的构建,在运行阶段使用了Debian项目下的开源应用例如apt-getGithub地址:https://github.com/STMicroelectronics/oe-manifest官方Wiki地址:https://wiki.st.co原创 2023-02-22 10:03:03 · 791 阅读 · 0 评论 -
在OpenstLinux根文件系统里增加自己的应用程序
这些文件夹都是按照Linux内核所需要的格式提供的,Linux内核启动时会需要文件系统下存在这些文件夹,用于Linux内核做初始化,这些目录结构非常眼熟和我们平时装好发行版时提供的文件夹结构是一样的。不同的系统内核所需要的文件夹也是不同的,这里我们重点关注bin这个文件夹,这里的bin就相当于我们/usr/bin目录,这个文件夹里存放了bin文件,我们可以将我们编译好的二进制文件放入到这个文件夹里去就可以了。可以看到存放了一些常用命令,例如rm、ls、cp等,一般这些工具都是基于busybox制作的。原创 2023-02-22 16:17:38 · 289 阅读 · 0 评论 -
通过Buildroot自制根文件系统
根文件系统是Linux内核启动之后读取的一个文件系统,并从这个文件系统中加载第一个init应用程序并启动,就是Linux上俗称的root进程、根进程。原创 2023-02-23 14:12:20 · 1059 阅读 · 0 评论 -
Dediprog EM100Pro-G2 安装与配置教程
GUI软件下载首先进入官方下载页面:Dediprog Download选择好设备型号与类型,然后点击搜索按钮:根据File Description的描述下载对应的软件,Software相关的是GUI软件下载Software之后双击管理员权限运行后一键安装软件运行截图:驱动下载在刚刚的下载页面中“File Description”找到Driver描述的软件并下载它,注意这个驱动仅支持win10下载之后解压到文件夹可以看到如下几个文件:inf为...原创 2022-03-11 11:41:17 · 2480 阅读 · 1 评论 -
Dediprog EM100Pro-G2 CmdLine教程
相关文章DediProg SPI NOR FLASH INSTALL前言本文章CMD LINE命令基于DediProg Emulator - 4.4.3参考文档EM100Pro帮助文档.pdf-WindowsServer文档类资源-CSDN下载概述DediProg Emulator提高了CMD LINE 命令行工具,可以在用户不打开GUI窗口时仍然可以实现GUI的相关功能,并且可以利用这个CMD LINE编写自动化脚本。环境配置DediProg提供的CMD LINE命原创 2022-03-11 12:58:37 · 1053 阅读 · 0 评论 -
实战!手把手教你如何编写一个Linux驱动并写一个支持物联网的LED演示demo
一.开发环境开发板:核心板:TQ210CoreB底板:TQ210 V4CPU:s5pv210内核:Linux_kernel_3.0.8交叉编译系统环境:操作系统:ubnutu16.04编译器:arm-embedsky-linux-gnueabi工具链4.4.6所需知识点:若你是刚入门的学生不太看得懂原理图与芯片手册,请先看下这篇文章中针对电路原理与芯片文档这块的教程:详细介绍如何读懂STM32开发板电路原理图以及芯片文档和开发手册,并编写一个测试程序:点亮.原创 2021-06-05 14:34:07 · 3920 阅读 · 14 评论 -
Linux嵌入式开发_修改机器码
在嵌入式开发过程中Linux认为每一个硬件都是定制化的,所以都需要一个唯一的编码,就是机器码,机器码的主要工作就是为了uboot与linux内核进行适配,若uboot引导时发现目标机器码与自己定义的机器码不同则不会进行引导。Linux规定硬件平台不能通用,因为Linux认为每一个硬件平台都是定制化的,独一无二的。所以当我们使用uboot引导时候需要让uboot和linux内核支持我们的开发板,这个机器码一般情况下出厂厂商会自己定义一个,我们要做的就是找到定义的机器码然后在uboot里增加它就可以了。原创 2021-04-17 15:22:15 · 1001 阅读 · 0 评论