嵌入式
文章平均质量分 60
远处的一只猫
自有的生活态度
展开
-
uboot网络控制
最近对uboot进行了修改。原来只能通过串口对uboot进行操作,譬如setenv,bootm,tftp等。现在可以通过网络对uboot进行控制。 PC端建立一个服务器,开发板在启动的时候,会和PC通信,可以通过PC来对uboot进行远程操作,譬如setenv,bootm,tftp等。 主要是从底层的收发,逐步朝上建立一套网络发送,接收,标志位解析,包括ARP请求等一系列操作。具体顺序原创 2015-10-31 11:15:15 · 1081 阅读 · 0 评论 -
DM6467之UART1
davinci的开发板里面有一块是DM6467,目前正在上面做一些开发,现在棘手的是一个串口问题。DM6467说是有三个串口,然后UART0是直接以直观的串口显示出来了,另外两个串口其中一个是CIR,另外一个IrDA。搜索了不少,发现大多数和DM6467相关的信息都在国外的网站和一些maillist里面,昨天在关注的是下面这个链接的回复http://e2e.ti.com/forums/p/原创 2015-10-31 11:12:54 · 635 阅读 · 0 评论 -
路径问题
今天用程序在开发板写文件,cff应用程序自动在omap里面的当前路径创建文件a,做的自启动:在/etc/init.d/rcS里面,最后写的:/opt/cff这样是自启动了,可是a文件却创建在了/目录下,原因是启动cff的时候,当前路径还不是/opt,所以一定不能忘记在/opt/cff前面加上cd /opt 小错害死人啊原创 2015-10-31 11:13:07 · 288 阅读 · 0 评论 -
一定要有版本和备份控制
前一段,公司另外一组改代码,开始很顺利,后来发现路走偏了,幸好有SVN,可以从中间某个节点继续前进。所以,代码一定要有备份控制。每个人都要有自己的备份,然后到达一个可发布或者进行大型测试的版本的时候,要把这个版本朝公司的备份器上上传一份,同时做好说明工作。 然后就是开发环境问题,开发了一个东西,然后参与开发人员都不知道开发环境的版本,崩溃……昨天下午实验性地探求公司服务器上的那个版本,结果没原创 2015-10-31 11:13:20 · 289 阅读 · 0 评论 -
OMAP触摸屏“Failed to create disp…
如果omap初始化出现“Failed to create display device instance”的提示,屏幕不能用,则可以用如下方法解决Add "video=omap24xxfb:rotation=90" to your bootargs.For example, my bootargs are set as"setenv bootargs mem=88M console=tt原创 2015-10-31 11:13:47 · 355 阅读 · 0 评论 -
Davinci fb 透明显示 释疑
最近几天做Davinci的Framebuffer的透明显示,花了不少时间和精力,发现网上写的都不是特别全。 Screen分四层,fb1和fb3是video层, fb0和fb2是osd层。我们称呼他们为osd0和osd1. 其中osd1是控制层,osd0是显示层。 只有在osd1被启动的情况下,才可以进行osd0的透明设置。要通过FBIO_SET_BITMAP_BLEND_FACTOR原创 2015-10-31 11:13:55 · 669 阅读 · 0 评论 -
DM365的H264编码中IDR
在进行H264编码的时候,TI平台是通过DMAI把底层的给封装了一下。过度信赖DMAI就导致了这个问题的出现。用DM365进行H264编码的时候,虽然配置了一个30的I帧间隔,可是仍然没有IDR出现。最终解决的时候发现,DMAI对365的封装不是那么完美。后来调用了H264的直接的配置,才搞定。发现DMAI里面关于配置的那个结构的参数其实挺少。可以参照DMAI里面的APP。原创 2015-10-31 11:14:29 · 486 阅读 · 0 评论 -
dm365 resizer
在continue模式和one shot模式两种情况下,分别使用resizer 本来想在one shot下同时使用resizer A和resizer B的,没做实验,不知道能不能。 目前用的是continue模式,把UYVY422转成YUV420Psemi在one shot模式下,resizer也可以把UYVY422转成YUV420Psemi原创 2015-10-31 11:14:47 · 484 阅读 · 0 评论 -
普通的网络传输流
在数据源上打上RTP头,然后用UDP发送出去,就可以通过VLC加载文件的方式,打开这个网络流了。 只要端口对,RTP头对就行了。原创 2015-10-31 11:14:50 · 312 阅读 · 0 评论 -
前一段一直在忙私人事情,没更新,…
做了一个高清工业相机的项目,核心用6467.三通道线程进行数据通信,一个通道进行命令通信。 最近做了几个网络协议的工作,都是自定义协议,没技术含量,都是工作量,哈哈。 ----------------------------- DVSDK 4出来了。打算把音视频的这套东西用DVSDK 4重做一下,然后改一下架构设计。 目前的架构设计虽然功能性能都可以用,但是如果应用在智能家居或原创 2015-10-31 11:15:00 · 270 阅读 · 0 评论 -
LCD屏幕的干扰
原来有的LCD屏是会对触摸屏有干扰的。 近来就发现一款LCD屏幕,对放在其上面的不同尺寸的触摸屏都有干扰。至于到底是LCD屏幕本文的问题,还是板卡设计不合理导致的,目前还不得而知。原创 2015-10-31 11:15:08 · 2308 阅读 · 0 评论 -
udp穿网
位于两个路由下面的开发板,想穿过多层路由进行通信。这就需要一个额外的服务器进行协同。 协同完成之后,两个独立的开发板就可以直接进行通信。不过这些前提是路由要可以用,而且要配置好,譬如DNS。之后每隔一段时间,还要通过协同服务器进行协同一次,不然两个独立开发板之间的穿网连接就会断开。原创 2015-10-31 11:15:10 · 334 阅读 · 0 评论 -
关于文件系统的一些想法
最近试了一些文件系统,jffs2,yaffs2,ramdisk,单独使用。同时还测试了组合使用,也就是双文件系统。 yaffs2+jffs2 和 ramdisk + yaffs2. 个人觉得,单文件系统和双文件系统各有利弊。针对目前客户的情况,以及目前我手头的硬件测试结论,双文件系统 ramdisk + yaffs2是比较好的。 无论是操作,稳定性,启动时间等等,都可以达到要求。而原创 2015-10-31 11:15:13 · 265 阅读 · 0 评论 -
做好的uboot网络版的一套东西的截…
PC端就做了一个简单的界面,后续界面只需要在这基础上做的好看点就可以了。功能都全了。原创 2015-10-31 11:15:20 · 256 阅读 · 0 评论 -
FAT32的协议总结
读了FAT32协议等,做了一些工作,学会不少东西,但是也有很多不懂得地方,希望明白人多来指教。============================================在U盘进行FAT32格式化后,发现除了MBR,DBR,DATA数据区外,还有一些数据区。就是用winhex发现的,有些数据段都没见过,不知道是干什么的。就是那两个unpartitioned space。原创 2015-10-31 11:15:02 · 1229 阅读 · 0 评论 -
dm365的音视频终于算是做完了
D1采集 H264动态编码,可调整分辨率,rtp打包,网络发送,单播或者组播 用PC的VLC接收播放,或者拿开发板接受,解包,解码,LCD显示,也可TV显示。 同事又给加了QT界面,主管看了,已经过了。 这已经是第二次做DM365的音视频了,虽然会不少,但是觉得还有很多不太会,唉,嵌入式真麻烦。 下面会做什么呢,嘻嘻,希望又是一个好项目。 下面是组播的一张照片,5块DM36原创 2015-10-31 11:14:57 · 1575 阅读 · 2 评论 -
FatFS移植,FAT32文件系统实现
FatFS是个很不错的开源的代码。只需要对最底层的write和read进行封装就可以直接使用了。 但是我在写文件的时候,出了些问题……老是写不对……于是我就直接把他自带的write的逻辑函数删除了,直接在自己封装的disk_write函数上面重新写了一遍写逻辑。毕竟自己是先看懂了FAT32协议再移植的FatFS,所以写起来比较快,觉得比看他代码要快,所以就写了,呵呵。这里分享一下FAT32原创 2015-10-31 11:15:18 · 2824 阅读 · 0 评论 -
模拟摄像头和cmos数字摄像头的切换
最近一段日子做了个模拟摄像头和cmos摄像头切换的小活。 也就是在嵌入式linux系统下,对cmos和模拟摄像头实时切换,达到一个设备可以同时查看,存储多个摄像头所监控的视频区域数据。 模拟摄像头多采用bt656模式。模拟摄像头我尝试了内嵌行场同步信号的bt656模式,以及行场信号分离的ycbcr模式。后一种模式当然需要硬件支持,需要把行场信号都连接出去。我用的是ti的芯片,所以tv原创 2015-10-31 11:15:36 · 4193 阅读 · 0 评论 -
dmalloc在嵌入式的开发板上的应用
下面是我实际在开发环境里面做的dmalloc移植时候的一些随笔 配置PC的dmalloc环境1. 首先把源码包打开,进入dmalloc文件夹2. ./configure 配置Makefile,我是加了线程选项的,所以我的是./configure--enable-threads3. 生成Makefile之后,需要修改makefile里面的编译选项 cc和cxx 我用的是DM6467原创 2015-10-31 11:13:14 · 662 阅读 · 0 评论 -
DM6467 ubl uboot
前两天重新烧写了一遍 omap 和dm6467的环境。OMAP自带了烧写工具,很方便。DM6467烧的时候从网上搞了一个工具DM646x_FlashAndBootUtils_1_50烧写的时候,发现了个问题。DM6467自带的ubl的bin文件烧写老是出问题。mvl_v5和4.0.1里面的我都试过了,不好使……,还是DM646x_FlashAndBootUtils_1_50里面自带的那原创 2015-10-31 11:13:17 · 436 阅读 · 0 评论 -
关于dm365的resizer
在用dm365的时候,用resizer的ioctl,一直不好使,后来在ti论坛上看到一个人的讲解,原来是bootargs的错。在配置的时候,有一项dm365_imp.oper_mode=1,这个要配成1.下面是我的配置,仅供参考setenv bootargs mem=80M console=ttyS0,115200n8 noinitrd rwip=192.168.0.7:192.168.0原创 2015-10-31 11:13:57 · 518 阅读 · 0 评论 -
dm365的LCD显示
对DM365的decode做了修改,想让他原来的从小电视输出,改成用LCD输出。在DM365上面接了一个LCD屏幕。屏幕是800*480,被设置成720*480大小。从decode出来的数据,应该是YUV420PSEMI的,而就目前我知道的,LCD输出时UYVY的422格式。声明一下,目前没太多文档读,有些地方可能不对,希望谁发现了,就回帖告诉我一声,不胜感激。 decode是用fifo原创 2015-10-31 11:14:00 · 573 阅读 · 0 评论 -
dm365 lcd 初步显示
之前搞的就一半显示视频这次把内核稍微修改了一下,把check var给注释掉,然后修改var的bits_per_pixel=8修改activate =128,这样是可以全屏显示,但是因为又注释掉了别的几个东西,所以现在只是让视频全部投影到了屏幕上,还没有完全调整好颜色的播放的速度,不过有所进展,呵呵。原创 2015-10-31 11:14:05 · 496 阅读 · 0 评论 -
dm365 lcd 初步显示 续一
之前能显示了,后来仔细查了一下内核代码,发现可以不用去掉那个check var了。之前报错的原因是,在davincifb.c的convert_osd_to_fb_var函数中,casePIXFMT_NV12中少了一个break,所以出现var的像素值一直会变成32.所以,在这里加一个break,就不用注释掉checkvar那段代码了。原创 2015-10-31 11:14:13 · 483 阅读 · 0 评论 -
DaVinci的Buffer_Handle和BufTab C…
DaVinci的dvsdk里面,所有的内存用的都是CMEM,而比较上层的一个封装就是BufTab和Buffer_Handle了每个Tab可以控制好多块内存块。具体到内存块有两种,一种是创建的时候指定他的大小啊,物理地址啥的。另外一种就是仅仅创建出这个结构的一个实例,而物理地址啊啥的都留空,等到回头用的时候,用指针搞定。第一类,对应的配置里面有一个叫reference的变量,配成false原创 2015-10-31 11:14:16 · 357 阅读 · 0 评论 -
TS的时间戳里面的90K
在做变换的时候,有一个90K,这个是TS标准要求的。 如果做的视频时30帧每秒,则每次传输一帧图像,则时间戳增加 90000/30 = 3000、如果做的视频时25帧每秒,则每次传输一帧图像,则时间戳增加 90000/25 = 3600、 音频上还没搞明白。。。继续学习中原创 2015-10-31 11:14:24 · 542 阅读 · 0 评论 -
dm365的LCD显示
困扰了几个月的难题,原来是那么的简单。 就是PAL和NTSC得问题,跟具体LCD显示器的分辨率啥的,拷贝的时候数据错位啊等。 呜呜。原创 2015-10-31 11:14:26 · 351 阅读 · 0 评论 -
dm365双屏同时显示 LCD TV
LCD 和 TV可以同时显示吗?肯定有客户有这个需求,但是驱动结构好像不支持。网络上有人说配置TV寄存器启动的时候也配置LCD寄存器,试验了一下,不行。。。显示设备创建的时候就失败了。要么就是我配的问题。最近这个功能又被拖延了,先把以前的尾部工作弄完了再继续看吧。原创 2015-10-31 11:14:39 · 287 阅读 · 0 评论 -
dm368 resizer
dm365dm368芯片拥有的resizer模块,可以从ipipe里面直接获取连续性视频数据,也可以从sdram获取视频帧数据,然后进行缩放。 所谓的缩放除了分辨率变化,还有格式变化。resizer可以将uyvy422的图像变换为yuv420psemi格式。不过从不严格的意义上讲,这样的变化也导致的数据量的变小,也算是缩小吧,哈哈。 后端的缩放必须要在one shot模式下进行,这个和原创 2015-10-31 11:15:40 · 1719 阅读 · 0 评论