笔记
文章平均质量分 80
Smalld_cat
野生猫猫怪,爱好电子,电机控制,嵌入式linux开发,光学成像系统,人工智能嵌入式,ros
展开
-
Camera sensor调试与bringup帧率计算
在我们前期开发一个项目的时候,经常会调试各种Camera sensor,sensor作为一种电气元件,我们的任务是让其正常工作,需要根据sensor的datasheet、原理图来正常地点亮一个sensor,让其正常出图、出流,然后将Camera的功能比如初始化、复位、裁剪、旋转、缩放等实现并且封装成一个API函数,最后以库的形式提供给应用工程师,让其能在app中结合逻辑灵活调用。原创 2024-02-25 23:17:21 · 2059 阅读 · 0 评论 -
嵌入式linux 驱动编译进内核
简介一般我们开发一个驱动的时候,首先是把这个驱动编译成一个.ko格式的驱动模块,然后动态地在命令行中加载进内核才能去使用。但是大家可能会想,linux里面本来就自带很多驱动,他们都不是像.ko文件一样加载进内核的,能不能把我自己写的驱动也放进去开机的时候自启动呢?当然是可以的。下面,我以我写的pwm驱动为例,将他编译进内核里。将驱动编译进linux内核首先,我先介绍一下linux内核源码里面的drivers目录。顾名思义,就是指驱动。linux内核里面的所有设备驱动都在里面了。比如 drivers原创 2021-09-15 14:59:06 · 1264 阅读 · 3 评论 -
如何固化zynq程序
1.验证程序是否可行首先打开sdk(本文默认读者已经有可使用的sdk工程),连接 JTAG 接口和串口,然后将pl端.bit配置文件下载进开发板最后下载.elf文件执行查看现象。2.配置vivado单击开启qspi,用于操作w25q存储或者使用sd卡验证设计可行性最后按快捷键“ Ctrl + S”保存设计,右键点击 Block Design 设计文件“ system.bd”, 执行“ Generate Output Products”,Flow Navigator 导航栏中找到原创 2021-09-14 14:03:13 · 3465 阅读 · 0 评论 -
zynq启动流程分析
前言zynq是xilinx推出的一款集成arm核以及fpga可编程逻辑器件的soc芯片,使得它不仅拥有 ASIC 在能耗、性能和兼容性方面的优势,而且具有FPGA 硬件可编程性的优点。zynq主要分为两端,首先是pl端,属于像fgpa开发一样的纯逻辑开发。然后是ps端,我把它类比成是单片机的裸机开发,通过操作库函数配置寄存器等,它的优势是可以将pl端当成是外设,pl端写好的东西可以被ps端直接调用。然后ps端是属于arm-A核,是可以跑系统的(linux等)。zynq启动分析1.启动 BootROM原创 2021-09-14 10:57:31 · 2048 阅读 · 3 评论 -
在linux虚拟机上显示摄像头视频(V4L2编程)
使用V4L2编程在虚拟机上显示动态图像还不会使用V4L2进行基础操作的同学请参考前面的文章:使用V4L2拍照本次,我们进行进阶版学习,通过将摄像头的mjpg格式照片(摄像头不能直接采集rgb格式的照片)数据流转化成rgb格式并且显示在虚拟机上,以此显示动态视频。rgb格式是大多数lcd液晶屏能显示的格式,对此也为下一章在开发板的lcd上显示动态视频打下基础,运行代码和注释如下:#include <stdio.h>#include <sys/types.h>#include原创 2021-08-26 14:59:42 · 11415 阅读 · 11 评论 -
手把手教你使用linux摄像头(V4L2框架)
什么是V4L2框架市场上出售着种类繁多的摄像头,他们的型号不同,厂商不同。这样子的话,每一次换一个摄像头难道就要我们自己去写一个驱动吗?这样子太麻烦了而且没有必要,于是就出现了v4l2框架,现在的摄像头都适配这个主流框架(就算不适配厂商也会想尽办法去适配以此来增加自己产品的畅销性)。这个v4l2适配了多种接口的摄像头。我们只需要学习一个简单的V4L2编程就可以通用所有摄像头了!我们知道linux的摄像头编程应用在人工智能嵌入式很热门,下面我来手把手教你linux是怎样驱动摄像头的。驱动流程本次教程在p原创 2021-08-26 11:22:51 · 44429 阅读 · 29 评论 -
使用Buildroot构建根文件系统
前言之前介绍过使用busybox来构建根文件系统,busybox虽然能够帮助我们快速构建出很小的根文件系统,但是想要正常使用还需要我们去完善(移植lib库,配置文件等),显然对于新手的我们要移植库文件只能把全部移植过去而不会裁剪,这样子出来的根文件系统也有100多M了,而且容易有遗漏的地方导致完善不全。这次我使用Buildroot来构建根文件系统,傻瓜式构建不需要我们来移植库和第三方软件什么的,啥都为我们构建好了,非常方便且完善。1.到官网下载Buildroot和交叉编译器点击以下超链接下载:交叉编原创 2021-08-24 13:53:29 · 2783 阅读 · 0 评论 -
使用busybox构建完善的linux根文件系统
使用busybox构建完整的根文件系统什么是根文件系统?使用最简单的busybox构建根文件系统1.安装依赖文件2.修改busybox顶层makefile3.添加busybox中文字符的支持4.配置busybox5.编译busybox生成根文件系统6.完善根文件系统1)向 rootfs 的“/lib”目录添加库文件2)向 rootfs 的“usr/lib”目录添加库文件3)创建/etc/init.d/rcS 文件4)创建/etc/fstab 文件5)创建/etc/inittab 文件什么是根文件系统?在原创 2021-08-23 16:46:21 · 3758 阅读 · 0 评论 -
linux驱动开发之新字符设备
前言什么是新字符设备呢?那我还是先说说什么是老的字符设备驱动吧。传统的字符设备驱动开发就是使用函数 register_chrdev注册字符设备,注册完成把驱动模块加载进内核后,还需要手动使用 mknod 命令创建设备节点。这就非常地不方便,这需要我们知道哪些设备号可以使用,还会浪费掉次设备号。(因为一个设备只用一个主设备号,则其下的所有此设备号都为它使用了)。于是就出现了新字符设备驱动了,这个提供的api可以让系统自动分配设备号,这样子在我们加载完成模块驱动后,自动就会在/dev上面挂着设备节点以供我们操原创 2021-08-21 16:59:05 · 458 阅读 · 0 评论 -
使用fdisk命令配置sd卡分区大小与格式
我们在用到sd卡进行特殊操作时,往往对sd卡各个分区大小以及格式有特殊要求,比如需要100M FAT格式的分区,又或者 EXT4格式 200M 的分区,我们如何在linux环境下格式化以及分配呢?本章同样适用于对系统磁盘进行操作。1.查看sd卡对应的设备节点首先不插入sd卡,使用命令ls /dev/sd*然后插入sd卡,使其接入linux系统再次使用命令对比可知,sd类型的节点多出了sdb,那/dev/sdb就是sd卡的设备节点使用fdisk进行分区操作查看信息umount /dev/sd原创 2021-08-18 09:54:54 · 7475 阅读 · 0 评论 -
linux设备树插件
什么是设备树插件?在linux内核版本4.4之后,就引入了一个动态设备树(设备树插件)的概念。在4.4版本之前我们增加或修改设备的时候,需要进入内核源码中修改设备树并且编译下载到开发板中。为了使得开发更加方便快捷,就引入了类似于设备树“补丁”的设备树插件。我们只要写好设备树插件,就可以直接被内核识别并且将里面的内容补充到设备树中,不需要重新编译设备树。这样子还有一个好处就是通过修改设备树插件的内容来使能或者失能某些设备以便于复用为不同功能。举个例子:usart3使用了引脚3和4,i2c也是可以用引脚3和原创 2021-08-17 17:39:12 · 2774 阅读 · 0 评论 -
什么是linux设备树
为什么要使用设备树?随着嵌入式的发展,linux系统被嵌入到各行各业。就拿开发板而言,就有玲珑满目的开发板可供用户选择。于是就出现了一个问题:每一块开发板的内核里,都有描述属于自己开发板的信息,于是就因为硬件不同,就产生了大量的有差别的内核,然后这些内核每年都大量地上传到linux开源社区。这样子开源社区的管理员就不乐意了!内核里的区别就只是硬件描述不一样,一点技术含量都没有,然后每年还有处理筛选那么多这种内核岂不是要累死。于是就引进了linux设备树的概念,专门用来描述板级硬件设备。设备树简介“设备原创 2021-08-17 15:30:37 · 1148 阅读 · 0 评论 -
vscode使用SPHINX写文档(带预览)
使用shpinx编写文档有如下优点:使用sphinx编写的文档可以方便地制作html、pdf等格式,非常方便浏览和转换。sphinx支持rst和markdown语法,方便共享及开源编辑,使用git也方便跟踪。由于rst语法比markdown语法更强大和方便,我们主要采用rst语法编写文档, linux内核源码文档也是使用rst格式编写的。我们的文档也支持markdown,主要是为了方便不熟悉rst的用户参与进来首先展示一下效果:这是我拿野火的开源项目做的一个示例。可以使用git下载:git原创 2021-08-11 16:35:05 · 3970 阅读 · 1 评论 -
Linux与Windows之间文件互传
平时我们编译文件或着一些资料需要在linux下运行,我们如何在windows与linux之间进行文件互传呢?在这里我介绍一个比较方便的软件FileZilla。下载地址下面就来正式开始:1.配置好linux下的环境安装vsftpd软件包:sudo apt-get install vsftpd打开对应的配置文件:sudo vi /etc/vsftpd.conf将里面的local_enable和write_enable使能,如图不会使用vi编辑器的可以把上面命令vi改为nano,使用nano编原创 2021-08-10 09:25:58 · 1746 阅读 · 0 评论 -
嵌入式linux 必懂概念科普篇
嵌入式linux 应用编程入门应用编程概念系统调用是什么?应用编程、裸机编程、驱动编程概念文件 I/O 操作文件i/o的系统调用函数文件管理文件描述符的由来什么是空洞文件?原子操作与竞争冒险标准 I/O 库标准 I/O 库与文件 I/O 的区别FILE 指针I/O 缓冲文件 I/O 的内核缓冲标准 I/O 库的缓冲文件属性与目录Linux 系统中的文件类型文件属主符号链接(软链接)与硬链接目录系统信息与系统资源时间的概念GMT 时间UTC 时间时区proc 文件系统信号基本概念信号的目的是用来通信的信号由谁原创 2021-07-02 12:20:36 · 3017 阅读 · 4 评论
分享