解决h264bitstream的一个bug

上个月着手写的那个H264码流分析工具基本完成基本的功能,为了显摆,还在部门公布了,不过使用效果不及几十刀的正牌分析工具那样功能强大,速度快。但是,自己从这里面学到了一些东西,还是不错的。当然,肯定是向着更高更强的层次看齐。——所以那个工具还在完善中。

阅读全文>>

完成一个分析H264码流的工具

最近又开始搞视频相关的东西了。之前一直对H264有畏惧,觉得太难,现在开始慢慢去接触它,了解它。无意中,看到网上有人对H264码流进行分析。地址:http://blog.csdn.net/leixiaohua1020/article/details/17933821。有商业的工具,比如H264VideoESViewer,不过要钱,而且很贵,公司花钱买了一个(真的是“一个”),只有一个人的电脑上装有(不能同时在其它电脑装)。为了学习H264码流,加上自己好久没写MFC了,就参考人家的代码,练练手。好在自己的MFC知识还在。

阅读全文>>

C语言数组赋值一例

在移植内核时,发现一个驱动使用数组十分巧妙。一般地,操作CPU某一外设寄存,不是直接使用完整的地址,而是通过相对地址来访问。比如,访问定时器,首先参考手册定义好定时器基地址,然后再定义寄存器(如控制寄存器、读数据寄存器等)对于定时器基地址的偏移地址。在使用时,一般都是使用偏移地址的,这样十分方便、快捷。如果有七、八个定时器,只需要定义好一个基地址数组、一个偏移地址数组,通过不同的序号就能访问不同的地址。

阅读全文>>

Linux文件inode用完一例

在实际使用SD卡过程中发现写不进数据了,系统提示类似下面的信息:can't create /mnt/sd/101: No space left on device。查看分区空间,还有很多,但就是写不进数据。上网查了才知道,原来这种情况有可能是inode用完的原因,经过查找,的确是这个原因导致的。

阅读全文>>

我的2013年

2013年注定是不平凡的一年。这一年经历了很多事,遇到过各种困难和挑战,解决过各种难题,内心澎湃过,也失落过,有豪情冲天时,也有回归平静日。下面以流水账形式分工作、技能、生活说说过去的一年发生的事。

阅读全文>>

我的git仓库,顺记github配置

我几年前就开始使用git了,不过今年才真正大规模、频繁地使用:自己代码存储管理,部门项目开发过程的代码管理和共享。公司实际上只使用了svn,并没有用git,所以领导们没有创建svn给我们用之前,只好用git管理了——现在一个项目目录即有git也有svn,个人感觉还可以,不会搞混乱,而且也便于开发,因为提交svn远比提交git严格。

阅读全文>>

记dropbox与git不和谐的一个问题

目前我基本都是使用git来管理代码,用dropbox存储自己写的代码还有git仓库。最近提交远程git仓库时,发现出现了冲突,网上资料比较少,不过还是找了一些方法。实际解决十分简单。 某次用pull来更新一下本地代码时,出现了如下的错误:

阅读全文>>

我的内核学习笔记4:sysfs学习

写这篇文章起因缘于自己的无知。那个很牛的同事还未离职前,我们组被领导挖了个坑,四个不知天高地厚的小伙伴傻傻地接受了——去抄人家的板子,做一个项目,说让我们组挑大梁。回想起来,真是一把辛酸泪。自从使用了那个同事移植的内核后,发现内核十分强大,许多驱动已经集成了——原谅我的无知,最近的两年时间里,完全没接触过内核,只是跟内核提供的接口打交道,我只知道使用open、ioctl、close,其它就不知了。当然,通过这几天的自学,也了解了当前内核(准确说是“当前几年”)的发展情况,不至于像当初那样的天真了。

阅读全文>>

我的内核学习笔记3:我的platform驱动模板文件

前面的例子已经实现platform驱动了,可以将之前的字符设备驱动整合到这个驱动中,实际上我也做了这一步。因为没有什么技术含量,所以忽视它的存在(就不发表出来)。这篇文章是将实现好的基于platform模型的字符设备驱动简化成一个可用的模板。如要实现字符设备,可直接套用此模板。

阅读全文>>

我的内核学习笔记2:platform设备模型

说实话,我做这个例子之前,我对linux的platform设备、platform驱动了解不多,只知道有这些东西,但没概念。上网搜索了一些资料,并下了点功夫跟踪了内核源代码,虽然不能说吃透了原理,但也不至于像以前那样一无所知。这篇文章主要是说一下一个简单的驱动例子。为了明确层次,不把所有代码都放到一个文件中,这个例子中,分别有设备文件simplechar_dev.c,驱动文件simplechar_drv.c以及共用的头文件simplechar.h。为了避免例子十分的简单,额外添加了些结构体,也在代码 中对这些结构体做了测试。总之,可以认为这是一个platform的模板吧。

阅读全文>>

我的内核学习笔记:环境

最近一篇写的关于linux内核的文章是2年前,这次因为某些原因,不得不再接触内核。2年过去了,激情不再,看着满是灰尘的2440开发板,不禁感慨当年奋斗的时光。再次接触内核,发现自己竟然也是移植过内核的人,正如在部门推广git的时候,发现自己原来也是使用过git的人。曾经学习的东西,冥冥中却遇上了。我期望有一天,有一天能对同窗说:我在大学学的杂七杂八的东西,可以在我的工作中使用到!这次学习,纯粹是不得已而为之,深入想一想,除了事情本身外,自己还是能学到东西的。作为日后的一个资本,也是不错了。

阅读全文>>