![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
文章平均质量分 68
huntenganw
中年嵌入式工程师,随心所欲不逾矩。
展开
-
RK3588上手踩坑之启动卡死2
认真看了下文档,要求是22以上版本,果断换了ubuntu2204,一把编过,就是buildroot也是下载编好了。个人觉得还是用各大开发板商提供的核心板,毕竟经过了严格测试,还有一定的技术支持,少走些弯路。RK3588的SDK瑞芯微是没有开放的,这点太坑了,又想推广芯片,又要立牌坊。一番折腾,验证了自制硬件板是好的。自己画的板子,firefly的系统是不让用的,应该是在内核加了锁。各种检查,核对pin表和dts,检查了几遍,没啥问题。同事开发了一块RK3588Q,记录下上手的踩坑过程。崩溃了,问题出在哪?原创 2024-06-24 16:13:07 · 480 阅读 · 0 评论 -
瑞芯微RK3588驱动设计之DVP并口摄像头2
sensor_register这个是camera的寄存器设置,厂商调好的,一般不动。根据相应的选择配置就行。比如上面使用c2145->framesize_cfg[0]--------gc2145_dvp_framesizes[0]----gc2145_dvp_svga_20fps。BT601和BT656/BT1120的区别就是前者有行长同步信号,后者没有, 行场同步信号嵌入在数据流中。指定数据的排列,这里用MEDIA_BUS_FMT_UYVY8_2X8。这里看看驱动的具体实现,以gc2145为例。原创 2024-05-15 16:42:09 · 1010 阅读 · 0 评论 -
RK3588 camera驱动总结一
3. 当dphy0_hw使用full mode时,链路需要按照csi2_dphy1这条链路来配置,但是节点名称csi2_dphy1需要修改为csi2_dphy0,软件上是通过phy的序号来区分phy使用的模式。3. 当dphy1_hw使用full mode时,链路需要按照csi2_dphy4这条链路来配置,但是节点名称csi2_dphy4需要修改为csi2_dphy3,软件上是通过phy的序号来区分phy使用的模式。1. full mode:节点名称使用csi2_dphy0,最多支持4 lane。原创 2024-05-14 14:54:29 · 1031 阅读 · 0 评论 -
瑞芯微RK3588驱动配置之DVP并口摄像头1
在瑞芯微的早期芯片都是用的cif接口来描述,实际就是连接的dvp接口。如果是8位线宽,一般就是YUYV、UYVY来传输数据,如果是16位线宽,一般就是8位Y数据,8位UV数据传输。因为瑞芯微的大部分芯片都支持DVP摄像头,配置都大同小异,这里以当下最流行的RK3588为例,从文档资料中我们可以看到对DVP的支持能力。下面就是核心的配置了。挂载在i2c下,不管摄像头有没有用到i2c,必须挂载在i2c下,因为驱动的设计就是这样的,走这个总线最方便。在实际的传输中,还有内同步外同步的区别,这根据使用的摄像头来。原创 2024-02-20 10:27:04 · 1629 阅读 · 5 评论 -
RK3588上手踩坑实录
好,下载不了是吧,我在buildroot里面给你屏蔽先,继续运行,又是各种Duang,白白折腾二天,库没下全,编译不成功,闹心。原来编译内核,既生成了boot.img ,又生成了extboot.img,但是需要用到的是extboot.imx。仔细看打印消息,发现内核编译时间还是旧的,这时候怀疑没有烧写成功,重复一次,依然不行。拿到板子,首先上个电,默认烧写的貌似是ubuntu,我想用Linux,直接重新烧写。先下个buildroot的固件。重启,嗯,啥反应都没有,现象还是卡死在pcie,破防了。原创 2023-12-26 09:42:53 · 1241 阅读 · 0 评论 -
imx VPU解码分析5-Linux视频VPU设备驱动hantro
Linux内核驱动源文件在kernel/drivers/mxc下,在hantro库中也发现有这个驱动,文件在hantro/decoder_sw/software/linux/pcidriver。这里以内核中的驱动文件为主,后面再看二者的差别。vpu的使用依赖驱动,驱动名称是hantro,在设备节点中为/dev/mxc_hantro。前文提到二个驱动文件,经过对比,发现基本一致,感觉是版本升级了,内核这个比较新。主要函数就是设备检测函数hantro_dev_probe。这个设备树描述了VPU的信息。原创 2023-11-23 15:26:54 · 277 阅读 · 0 评论 -
imx VPU解码分析4-抽丝剥茧wrap与hantro的关系
前面已经分析了wrap和hantro,但是二者是如何结合的,wrap是如何封装hantro的,提供了哪些接口,封装了哪些细节还不太清楚,此文来探究下。原创 2023-11-21 16:14:13 · 166 阅读 · 0 评论 -
使用FFmpeg开发简介1
适逢FFmpeg6.1发布,准备深入学习下FFmpeg,将会写下系列学习记录。这个install文件,实际就相当于一个ffmpeg的sdk了,利用它就开发自己的程序了。重点看看头文件中的函数,究竟给我们提供了怎样的接口函数、怎么使用就是难点了。以前在某个地方看到说so库的后缀中可以看到版本号,从ffmpeg的lib中看到这个不一致,也就是这个规则不存在的。二次开发则需要编译出的库。原创 2023-11-12 23:05:37 · 870 阅读 · 0 评论 -
适用于嵌入式arm的ffmpeg编解码
现在ffmpeg更新较频繁,如果使用API开发,各个版本都有一定区别,建议查阅文档。如果只需要ffmpeg的命令行,就不用理会了,直接上最新的。在嵌入式arm应用开发中,经常会遇到需要处理视频的情况,这时候就需要强大的开源工具ffmpeg出马了。这里的ffmpeg只具备了解码的功能,如果还需要264等编码功能,还需要安装x264库,这里就不细说了,网上很多教程。ffmpeg的编译系统做得特别好,基本兼容各类型环境,不管是x86还是arm,都可以顺利编译通过。将生成的so库拷贝到系统目录下,执行程序即可。原创 2023-10-27 12:15:28 · 983 阅读 · 0 评论 -
嵌入式Linux下tc358743的驱动设计
设备树配置的名字得和这个驱动名称一致,就是compatible属性tc358743还是tc358749。总之,这个结构体用于组织和管理TC35874X设备的各种状态信息和控制参数。因为内核已经有了这个官方给的驱动,不需要再折腾,所有直接menuconfig配置上就行了。它包含了一系列成员变量和控件,用于管理并存储TC35874X设备的状态。等,其中一些成员变量与设备的配置、控制、信号处理等相关。最重要的就是probe函数了,基本的初始化配置都是在这里实现的。可以看出tc358743的功能还是很强大的。原创 2023-07-07 15:49:50 · 1133 阅读 · 2 评论 -
嵌入式系统之内存管理
C语言为变量定义5种存储类,分别是。不同的存储类决定了作用域和存储期。那么存储类和内存之间的关系是怎样的?从存储期看分为静态、自动、分配。静态存储(static)在编译时已经确定,整个程序运行期存在;变量(auto、register)在代码块运行时产生,退出时清理;动态内存分配在调用malloc或相关函数时产生,在free时释放。因为分配和释放不是线性的,这就导致了内存碎片。从作用域看决定哪一部分程序可以访问哪个数据。在嵌入式中内存就是以堆和栈的形式存在。原创 2023-06-30 14:26:17 · 218 阅读 · 0 评论 -
适用于物联网通信的数据格式JSON
cJSON是一个轻量级的JSON解析器和生成器,它是用C语言编写的,非常适合嵌入式设备和其他资源受限环境中使用。原创 2023-05-12 16:28:31 · 828 阅读 · 0 评论 -
ARM应用之瑞芯微RK3568上使用QT+Opencv
手上有一块RK3568板子,正好官方SDK提供了opencv和QT的环境,就整个QT+OPENCV的简单应用玩玩。还是通过ioctl映射出原始的图像数据,这里将图像的YUV数据转为bgr。在opencv中一般输入的是bgr图像进行处理。QT一般使用的是RGB图像,所以注意得转换一下,不然那颜色就反了。这里直接使用USB采集的图像进行处理。原创 2023-03-14 17:23:25 · 2230 阅读 · 0 评论 -
在ARM上使用QT的TCP/UDP实现图像数据传输
在ARM上使用QT的TCP/UDP实现图像数据传输原创 2023-01-12 11:46:18 · 1117 阅读 · 0 评论 -
适用于物联网Linux设备上使用的sqlite3
在嵌入式Linux上使用sqlite3的一个简单示例,包含写入,查询第一条和最后一条,删除第一条和最后一条,在物联网设备上读写非常方便。使用sqlite3_exec()与 sqlite3_prepare()+ sqlite3_step()二种方式是一样的;注意,在创建完表后最好加一个sleep,防止立马写入导致的错误。原创 2022-12-05 17:34:29 · 925 阅读 · 1 评论 -
适合于物联网通信的FEC纠错码
在物联网通信中,经常遇到数据传输成功率的问题,这时候使用FEC纠错码,即可完美实现成功率100%。原创 2022-09-09 17:33:07 · 1978 阅读 · 1 评论 -
百度飞浆paddle应用之在嵌入式ARM上运行
在嵌入式ARM (全志A40i)运行百度AI应用原创 2022-07-18 15:46:39 · 1621 阅读 · 1 评论 -
物联网终端设备软件可靠性分析
物联网终端设备很多应用在无人值守环境,要求设备能够全自动化运行,如果在使用过程中发生失效,将会导致该设备的失联,对软件的稳定性必须高要求。 在软件设计过程中,对可能发生的失效进行分析,采取必要的措施避免将引起失效的缺陷引入软件,为失效纠正措施的制定提供依据。 不能完全依靠软件测试手段来发现错误,应该是以软件稳定性设计为第一原则考虑,测试当做一种次要的辅助手段。 能够软硬件解决的问题,永远以硬件为先,软件手段其次。1. 影响软件可靠性的技术因素运行环境: 软件故障是软件设计(固有的)缺...原创 2022-04-27 10:21:36 · 1736 阅读 · 0 评论 -
坎贝尔CR1000数采
供电要求:12V,9.6V-16V宽范围支持。COM1、COM2、COM3、COM4可配置为RS232串口,波特率支持300bps-115200bps,默认9600bps。RS-232口作为与PC端上位机连接通信口,一般9600bps。使用232串口线与电脑连接,打开上位机,可进行数据传输,可对CR1000进行编程配置。CR1000也是支持编程配置的。只需要几行语句配置即可实现串口定时对外输出数据。SerialOpen (Com,115200,0,0,1000)SlowS...原创 2022-04-08 16:24:57 · 917 阅读 · 0 评论 -
从RGB到YUV的转化之MATLAB
在图像处理中,经常会遇到RGB和YUV图像的问题,虽然有一些工具可以直接转化,但是对于数据的处理过程并不太清晰,这里给出MATLAB的实现,直观感受数据转化过程及结果。1.从RGB转为YUV422clc;close all;clear infilename = '***.bmp';outfilename = '***.yuv';RGBimg =imread(infilename);%figure;imshow(RGBimg);YUVimg = rgb2ycbcr(RGBimg);原创 2022-03-02 17:05:01 · 6473 阅读 · 1 评论 -
国产SOC平台
这几年,国产SOC平台出了很多不错的产品,已经在各行业得到了广泛的应用。对于原来各行业使用国外芯片的国产化替代,也是能顺利实现的。国内有一批非常优秀的开发板厂家提供品质优良的开发板,在淘宝等渠道可以轻松买到,资料很丰富,还提供一定的技术支持,为这些开拓者致敬。公开查到的厂家如下:飞凌嵌入式:全志的T4、A40i、T板子比较全,瑞芯微有一款,以前做NXP的相当不错,现 荣品电子 firefly 米尔科技 ...原创 2022-02-17 15:10:25 · 8055 阅读 · 0 评论