切换马甲
上一页
下一页
分类专栏
-
79篇
默认分类
文章数:79
文章总阅读量:32.9w
文章总收藏量:211
文章总点赞量:4.5k
按发布时间
按阅读量
按点赞量
-
做海思肯定离不开录像,录像一般都是放在硬盘,优盘,或者SD卡中的,今天就给大家说一下这个SD卡的驱动。 可能有人会说SD卡驱动有什么好说的,不都是标准的linux内核自带的驱动吗。 是的,SD卡的驱动内核中一般都是会有的,但是SD卡驱动会分为两种,需要看SD卡在硬件上是怎么连接的,其中一种是通过USBhub接在芯片上的,而宁一种是直接通过SDIO通讯接在芯片上,那自然两者需要加载的驱动2020-08-25 19:02:041 4 1607
-
不知道大家遇到过这样的问题没有,就是从海思出来的裸h264数据录成一个文件以后去播放,会发现播放速度很快,10秒的视频,可能6秒就放完了,就像快进一样,我最近就遇到这个现象,找了很久,一直没解决。 今天发现了问题所在,在这里分享给大家,其实是一个很小的问题啊。这是因为我把帧率改成了15造成的,我用的VLC播放器默认播放的帧率是25,对于h264的裸数据来说是不会像mp4或者mkv这样的文件2020-08-26 19:06:100 0 3454
-
大家用海思芯片,视频数据的处理肯定是最常使用的,但是在很多场合当中,音频数据也是很必要的,这里就跟大家分享一下海思音频数据的处理。 1.海思的Aenc模块编码出来的数据是带海思头的,因而在解码的时候就要注意,音频文件是否需要海思头。 2.如果需要直接读取音频文件数据交给AO播放(HI_MPI_ADEC_SendStream),每一帧数据都是要带海思头的。如若文件数据没有海思头,就得手动进行2020-08-27 19:30:090 0 2313
-
不知道经常使用20Dv200的人有没有发现过,在20Dv200的SDK里面有一个小bug,就是在硬件文档中,20D芯片的图上会出现GPIO9_0这个管脚,但是去看一下SDK中软件的文档,发现20Dv200的GPIO只到第8组就没有了,压根没有GPIO9_0,如下图:这是怎么回事呢,其实我也不太清楚是什么情况造成的,但是20Dv200确实没有GPIO9_0这个管脚,但是我们可以通过复用的方式知道VG2020-08-31 19:19:060 0 1806
-
经常使用海思的人肯定离不开播放器,毕竟海思的主要业务是视频处理,有了视频,肯定需要播放器去播放,现在主流的播放器主要是VLC和potplayer,这两个到底哪个好一点呢。 个人推介potplayer,VLC有一个比较麻烦的是录制H264裸数据的时候,第一帧必须是I帧,它才可以解码,不然视频就没法播放,这个问题VLC一直没有解决,也不知道是为什么,还有就是VLC播放裸数据时播放的速度会出一些问题,有2020-08-31 19:24:410 0 17284
-
经常使用海思做开发的肯定会使用到OSD在画面上叠一些字幕,比如说时间,日期,画面的地理位置等等,有的OSD是不需要频繁设置的,但是像时间这种OSD,1秒就需要刷新一下,来保证时间的准确性,但是里面需要注意什么呢,这边就跟大家说说我遇到的问题。 首先,这个时间的刷新,是真的1秒刷一次吗,我在项目当中,直接使用sleep 1来做延时的时候,往往时间并不是准确的1秒刷新一次,这个跟当时CPU使用2020-09-16 19:14:511 3 1719
-
海思是一个主要功能为处理音视频的arm芯片,既然是音视频就离不开录像和录音,录像和录音就需要存储设备来存储,所以我们在使用一个设备的时候,怎么样让设备开机就自动挂载上与设备连接的存储设备呢。 我们就拿硬盘举例把,首先开发板上需要交叉编一个工具,为lsscsi,使用这个工具在脚本中定义一个叫hdd的变量,hdd=$(lsscsi | grep ATA | awk '{ print $NF}'2020-09-16 19:28:280 0 1503
-
大家用海思肯定都用过OSD,那OSD一般都是对齐的,这样看起来会比较美观,OSD左对齐想必大家都会,只要把OSD第一个字符的横坐标设置的一样就可以了,这样显示出来的两个OSD左边就是对齐的了,但是右对齐怎么搞呢? 其实海思里面是没有提供设置右边的横坐标的,所以右对齐是不能完完全全做到的,我们都是通过左对齐的方式,在需要显示的字符前面增加空格来把字符往后推,从而使得较短的字符往后显示,尽量是两个字符2020-09-21 19:06:021 0 2003
-
使用ARM的开发板,在很多情况下都是要使用到4G拨号来实现上网功能的,毕竟网线不是任何时候都有的,但是4G拨号毕竟是无线网,无线网就会遇到各种影响使得它的信号质量时好时坏,甚至有掉线的可能,那么我们要怎样保证它拨号的畅通呢? 其实方法可能很多人都知道,使用一个守护进程,一直定时检查一下网络的状态,如果网络不通,就重新拨号一下,但是在实际使用的时候经常会遇到,拨号一直拨不上的情况,其实硬件上也没有什2020-09-21 19:12:371 1 2043
-
不知道大家有没有遇到过这种情况,就是我的开发板已经在客户那边使用了一段时间了,然后客户需要增加一个功能,但是原来的内核是不支持这个功能的,所以就要重新更换内核,但是如果需要全部寄回来升级显然成本就非常大了,也会严重影响客户的使用,那么我们怎么在不使用串口重新烧写falsh的情况下更换掉内核呢? 其实我们可以使用dd指令去替换掉我们的内核,指令如下: dd if=内核路径 of=内核在falsh中的2020-09-21 19:34:460 0 1876
-
最近接触了一个T31Z的开发板,这个开发板是支持快速启动的,从上电到启动,不到一秒钟,开发板拿到手,自带的系统就是可以快速启动的,但是要做二次开发必须自己编译。 把SDK解压开来,根据文档,先要运行bulid/下的set_env脚本, ./build/env_setup_zeratul.sh,但是脚本里面需要设置很多参数,如果对开发板的参数不清楚的,建议搞清楚再去设置,里面有关于sensor的型号2020-10-12 17:33:141 0 3370
-
这次尝试了一下正基的5Gwifi芯片AP6335的驱动移植,一开始还是有很多东西分不清,加上大部分人应该跟我一样,由于片子的量不够,很难从官方拿到技术支持,所以自己研究了一下,这边跟大家分享一下。 最头痛的问题,就是这个正基AP系列的片子,用的都是BCM的驱动。一开始这个BAM版本和芯片型号是怎么对应的一直搞不清楚,经过不断地谷歌和百度,大概是这么个意思,就是AP系列的片子都是可以用BCM的驱动源2020-10-29 19:20:246 0 3809
-
前一篇跟大家说清楚了这个驱动源码怎么选择,今天就跟大家说一下,怎么去编译。 首先把源码解压到内核的/drivers/net/wireless下,把dhd_gpio.c中的int bcm_wlan_set_carddetect(bool present)函数里的io控制改成君正的IO控制函数,如下图: 修改好以后,打开make menuconfig,把对应的驱动选为M,make modules一下2020-10-29 19:40:149 2 5110
-
最近搞了一个君正的T31L的板子,搞过君正开发的应该都知道,君正现在还没有跟海思一样提供了一个裸板烧写的工具,一个空的片子只能通过SD卡启动之后从SD卡把系统烧到falsh里面去烧写系统,但是我们这个板子设计的非常小,没有留SD卡的位置,这个就比较麻烦了,那么这样的情况怎么解决呢。 其实也是很好办的,首先还是把boot编译出来,然后用一个falsh烧写工具,把boot烧进去,这样启动的时候2020-11-07 11:25:100 0 3630
-
这两天搞了一个项目,要求使用T31L提供双码流RTSP输出,一路1080P,一路D1,sensor使用了SC2335。 其实本身这个东西难度不大,君正官方提供的sample中sample-Encoder-video已经提供了双码流编码的实例,只需要把RTSP加上,利用回调把视频流发送出来就可以了,但是君正提供的sample是H265编码的,客户需要的是H264编码,所以我们必须调整一下,但2020-11-14 10:44:48848 39 12325
-
君正的SDK中给了一个单码流叠加OSD的方法,其实就是把OSD初始化之后,先把视频源数据绑定OSD,然后再将OSD绑定到Encoder中,如下图: 由于君正是不可以像海思一样,在VI之后就直接叠加OSD,从而使得每个码流都有OSD信息的,所以只能通过创建group然后绑定到各个通道上,分别在不同的码流通道中运行。 所以我就自己去修改了一下代码,去初始化了两个osd的group,分别绑2020-11-14 10:57:08874 21 12913
-
做过君正开发,或者正在做君正开发的小伙伴应该知道,君正的sample代码里,经常使用到一个cell的结构体,官方文档里的解释: Cell 指包含了 Device、 Group、 Output 信息的集合。以 IMPCell 的数据结构呈现,Cell 主要用来 Bind(bind)。根据 Device、 Group、 Output 的定义, Output 作为数据输出的节点,而 Group2020-11-14 14:33:28981 32 4120
-
关于hostapd的移植,网上可以搜到很多,写的也大致正确,那为什么我还要在这里再给大家写一下呢,很简单,就是因为我自己按照搜到的步骤去做,往往有问题,这里给大家总结一下,希望大家避开这些坑。 首先,编译hostapd必须依赖libnl和openssl的库,所以在编译hostapd之前需要先编译libnl和openssl,这个里面就有一个大坑,就是这个libnl,openssl和hosta2020-11-26 16:37:0385 14 9024
-
几乎所有的原始SDK里面的boot都是可以按任意键停止的,但是这样就会有一个问题,就是当串口有杂数据进入的时候我们就永远也进不了系统了,进入boot就会被打断,停止在boot状态下,所以这个时候就需要把这个停止键给设置一下,这里我就用君正T31的boot,设置成按ctrl+c停止了。 进入boot源码,需要修改的代码在common/main.c中,进入static int abortboo2020-12-04 15:53:0064 5 10395
-
最近移植了一个i2c接口的RTC芯片,rx8010,这边给大家总结一下。 首先作为i2c接口的设备,i2c的驱动一定要打开,在menuconfig中打开i2c驱动,这个我就不说了,想必大家都会,打开i2c驱动以后将驱动源码放入对应目录下,这里再driver/rtc下,然后修改Kconfig和Makefile,如下图: 这里添加完毕之后就可以在menuconfig中加上设备的驱动,但2020-12-04 16:08:5655 3 10046