切换马甲
上一页
下一页
分类专栏
-
79篇
默认分类
文章数:79
文章总阅读量:32.9w
文章总收藏量:211
文章总点赞量:4.5k
按发布时间
按阅读量
按点赞量
-
前段时间做了一个项目,其中客户有一个功能的需求就是用USB口虚拟一个网卡,接在安卓设备上,供安卓设备上网,网上搜了一些方法2020-04-22 20:21:450 0 2244
-
大部分情况下,我们修改IO的状态只需要在系统跑起来以后在Rcs里面添加即可,但是有些器件比较特殊,或者有些情况下必须一上电就2020-05-07 17:16:140 0 1610
-
大部分海思源码中只打开了串口0和串口1,而串口0一般都是作为调试串口使用,那么供用户使用的串口就只有串口1这一个了,很多情况2020-05-07 19:02:311 1 2732
-
在视频处理中,很多情况都要叠加OSD,但是有的OSD我们只希望它出现在显示器上,而不希望它出现在录像文件里,这个时候就可以用FrameBuffer层来叠加OSD,这种OSD就不会出现在录像文件里。 大家在/dev下都会看到有fb1,fb2这样的节点,这个就是用来操控FrameBuffer层的OSD使用的节点,可以通过open函数打开节点,然后使用HI_MPI_SYS_MmzAlloc给FrameB2020-05-14 17:30:060 0 2484
-
现在的嵌入式系统设计当中jffs2还是比较主流的文件系统,但是jffs2在可写环境下容易被外部干扰,写入一些数据,当数据过多时有可2020-05-21 19:20:010 0 2473
-
我们做海思的项目中,经常会遇到,在视频通道丢失的时候给画面做一个默认的图片,提示客户,现在没有视频信号,但是我们怎么去判2020-05-22 19:25:120 0 1997
-
海思芯片最主要的功能就是视频处理,录像是其最主要的业务之一,不知道大家有没有遇到过一种情况,就是查看VI,VENC信息一切正常,录像文件也有数据写入,大小也正常,但是播放的时候一直就是灰色,时间戳也可以正常的来回波动,但是就是没有视频画面,这个是什么原因呢。 我自己遇到之后处理了很长时间,现在写出来,希望大家看到不要绕弯路了,其实这个问题很简单,就是264在解码播放的时候是先从I帧开始播放的,而我2020-05-22 19:32:200 0 1887
-
前段时间写了一篇关于只读文件系统squashfs的使用方法和它的好处,我自己也使用了一段时间,发现了一些问题,跟大家分享一下。首2020-05-29 17:57:543 1 1803
-
在录像中,经常会用到OSD,而OSD又分为字符和位图,使用位图会让OSD更加美观,从而达到更好的用户体验,但是位图的处理相对复杂,特别是位图的底色,如果是黑色的,那么显示在OSD上的就会是一边黑色,中间加上你的位图,这样会挡住那部分的视频信息,这是万万不行的。现在就告诉大家,怎么去看图片的底色,使用hexdump xxx.bits -C | more指令,就可以看到位图的16进制信息,如图所示这个2020-06-12 19:20:222 1 2689
-
在实际项目中,我们往往要使用的视频输出不止一路,可能是两路,甚至是三路输出,所以在选择芯片时,就要查看好,此芯片能不能满足项目设计需要,我们就拿3520D来举例,如下图 支持1个高清输出和两个标清输出,也就是支持三个视频输出,这里的设备号就是0,1,2,0号输出设备就是高清,1和2是标清,在代码里,如果要初始化高清输出设备,就要初始化设备0,要是想使用标清设备就初始化设备1或者2,也可以同时使用2020-06-12 19:39:571 0 2200
-
在海思录像的时候一般大家都是使用硬盘和优盘来存储视频的,硬盘一般都是固定在设备上的,而优盘很多情况下是要支持热插拔的,那么怎么来实现呢。 如图所示,在插拔优盘的时候系统会出现一系列打印信息,remove@表示的就是优盘拔出的时候的打印,而add@打印就是再优盘插入时的打印,我们可以在程序里检测系统的打印消息,再用回调函数来做挂载和卸载之类的处理,就可以实现优盘的热插拔录像拉。2020-06-19 15:39:471 2 2249
-
大家使用海思芯片时候,经常需要使用到看门狗,硬件上的看门狗需要在硬件上添加然后使用IO口去喂狗即可实现,今天给大家说一下海思自带的软狗如何使用 如图所示,海思给了软狗的使用方法,但是初学者一开始不怎么看得懂,其实这里主要就是三个参数的配置: 第一个就是HIDOG_TIMER_MARGIN,这个参数就是喂狗的时间,这里设置的60,如果超过两个60,就是两分钟以后都没有喂狗,那系统就会重启了。 第二2020-06-19 15:56:332 3 3797
-
海思的开发板,有不少是只有4个串口,对于大多数项目是够用了,但是有的时候可能就差这么一个,这个时候,我们可以把调试串口也用于业务当中,也就是ttyAMA0这个串口,但是这个串口上电之后就会一直有调试信息打印,无法使用,这个时候怎么办呢,教大家一个关闭调试信息的方法: 在/etc目录下有一个inittab文件,我们打开它,找到下图这句话,把它注释掉,重启一下就可以了 这个时候重启就看不到内核的串口2020-06-29 10:47:111 1 2161
-
现在有不少项目的网络通讯都会使用到mqtt协议,MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,所以现在很多项目都会用到mqtt协议。 既然是网络上使用的通讯协议,那么断线重连就很重要,我自己做项目当中也遇到了这个问题,在mqttC++的开源库中,断线重连有一个官方提供的方式,就是在MQTTClient_conne2020-06-29 11:06:043 3 3397
-
用过海思3520DV200的人应该都知道吧,由于芯片的年代比较久了,20Dv200的SDK里面是没有标准SPI通讯接口的驱动的,要用SPI通讯的话只能用官方提供的工具SSP_read和write来读写数据,这样非常的不方便,也不好集成在上层的代码中使用,最近有个项目,需要用到spi,所以就想着能不能自己加一个标准的spi驱动,就像串口一样,通过打开设备节点的方式来操作spi,但是驱动的调试本身2020-07-20 19:03:110 0 2152
-
上次跟大家说道,这个添加spi驱动的思路是啥,那么接下来我们就要具体去看代码了。 我们首先要搞清楚,要修改和添加哪几个文件,再去做具体的修改。这个怎么看呢,做过linux下内核驱动修改的人应该知道,我们添加一个官方自带的驱动都是通过make menuconfig这个指令,打开系统驱动的图形化界面,在里面添加我们需要的驱动,保存,退出,重新编译,新的内核就可以支持我们需要的驱动了。那么mak2020-07-20 19:36:330 0 2860
-
20D添加标准SPI驱动详解 ——(二)中,我们最后告诉了大家,我们需要修改和添加哪些文件,Kconfig和Makefile我们就不跟大家说了,大家照着16A的文件自己去复制粘贴一下就行了,就是要注意一下文件名和SDK名字别搞错就行,在驱动代码的文件添加上,我们需要添加spidev_info-hi3520d.c、spi-hi3520d.c,需要修改的是spi-hisilicon.c、spide2020-07-20 20:14:230 0 2488
-
上次给大家把底层的SPI驱动添加给大家讲完了,最后一节把上层应用程序的主意事项告诉大家。 首先,上层应用使用的spi头文件,建议大家使用20Dv400里的hi_spi.h。 第二,头文件中的结构体,宏定义啥的一点都不能修改,这些东西在底层调用的时候都会做判断,只要有一点点的修改,就会造成判断不过,无法通讯的情况。 第三,spi初始化的时候一定要保证通讯双方的模式,通讯位数,通讯速率2020-07-21 18:59:281 0 2149
-
视频处理当中,大家应该海思用的比较多,最近接触了两款君正的芯片,T30和T31,这两个片子差别不是很大,但是在扒代码的时候却发现了对视频流的处理上还是有些优化的。 话不多说,先上图 不知道大家看出区别了没有,T30写的就相对简单一些了,直接把一帧的数据按包数一包一包用write函数写进fd,而T31就不一样了,对每包做了偏移地址,并且做了一系列判断,这是为什么呢。 其实很简单,T32020-07-28 19:05:150 0 6948
-
最近刚刚接触了两款君正的芯片,T30和T31,用下来想分享给大家一些关于君正芯片的小特点吧。 刚开始用的时候有点觉得奇怪的是君正不知道为什么不支持串口烧写系统,必须要做一个TF卡作为启动盘,把boot起来之后再用TF卡往falsh里面写入系统,希望以后君正可以支持这个功能啊。 按照SDK的文档做好启动盘,然后烧入官方提供的系统,由于做过海思开发,大致步骤是差不多的,所以还算顺利,系统跑2020-07-28 19:20:200 0 2963