工作(项目)经验
leon_2016
将数据通过链路安全送达目的地,语言、机制只不过是一种手段或者工具。
展开
-
OSD叠加到视频流
1.OSD叠加原理文字、图片、视频显示的原理,无非就是描点(像素)。显示屏是发光二极管组成。俗称点阵。2.原理图3.处理流程⑴text文本段⑵从字库中找出相应文字的点阵⑶描点(将文字二进制数据转换成pixel值,存到canvas)⑷查找颜色索引(取出canvas像素值 与 CLUT进行匹配)⑸存储index值到显存(areaStart)⑹设置参数,后面的事情就交给底层处理原创 2016-10-16 21:21:39 · 5426 阅读 · 0 评论 -
关于NFS挂载问题——NFS failed: Protocol not supported
1.序 这几天在调试海思板子的时候,刚好长城宽带断网了,之后局域网还是能用的,使用NFS把Ubuntu某个共享目录到单板上,是可以的。长城宽带几天不好,服务态度极差,无力吐槽. 第二天就换了电信宽带,还送了个电信千兆光猫.价钱确实是贵了,但是可以愉快的上网了,根据装宽带师傅的吩咐,使用了千兆口接路由器的WLAN口.2.挂载NFS 晚上,愉快的使用网络,同时打开单板,发现挂载不上NFS了。这原创 2017-11-17 23:13:34 · 37709 阅读 · 5 评论 -
搜索Linux系统所有进程打开(文件)句柄的命令
1.搜索进程打开的句柄列表原创 2017-03-02 23:45:59 · 1147 阅读 · 0 评论 -
项目经验之谈—— x86、ARM架构栈帧汇编分析
0.源码1.x86架构2.ARM架构原创 2017-04-05 21:34:40 · 885 阅读 · 0 评论 -
项目经验之谈——fork与文件(操作)之间的爱恨情仇
1.前言原创 2017-03-27 22:12:33 · 439 阅读 · 0 评论 -
项目经验之谈 —— umount TF卡 失败
1.项目描述在公司开发的门铃(G26设备),带TF卡,2. 跟踪原创 2017-03-03 14:39:56 · 812 阅读 · 0 评论 -
项目经验之谈 —— 利用编译器及C语言特性<位域>进行内存边界检测
1.前言2.校验3.源码#include <unistd.h>#include <stdio.h>#include <fcntl.h>#include <sys/wait.h>#include <sys/stat.h>#include <sys/types.h>#include <getopt.h>#include <stdlib.h>#include <string.h>#defi原创 2017-03-17 15:44:53 · 983 阅读 · 0 评论 -
项目经验之谈--栈破坏 -- 案例二
1.前言前一篇 《项目经验之谈–栈溢出》 已经写到过栈破坏从来导致的程序崩溃问题,这次在项目中又发现此类似BUG。故此再记录下来,谨记下次再犯。2.项目需求通过二维码扫描配置camera ID,然后程序就崩溃了。项目需求不是紧要的,这里不多累赘。3.代码以下代码为出问题的函数static void trigger_callback(NV_HANDLE handle, NV_S32 fd, void原创 2017-03-01 09:14:31 · 7506 阅读 · 0 评论 -
项目经验之谈--栈溢出
前言 在嵌入式领域,我们编码调试时,经常会出现段错误 (core dumped),根据个人经验,最常见的莫过于“空指针”、“野指针”、内存泄露(一般是堆区泄露)、栈溢出、越界访问等。 笔者在此只阐述栈溢出(栈区被破坏)的情况,因为这种问题在项目中极具有典型性、隐藏性、且不易被跟踪发现。项目需求 该项目是需要”通过GSM模块的GPRS功能来实现上网功能,需要跑少量流量,模原创 2016-05-18 22:57:45 · 1224 阅读 · 0 评论 -
项目经验之谈--驱动崩溃分析之栈回溯技术与反汇编
1.序言原创 2016-11-18 10:53:45 · 3548 阅读 · 0 评论 -
Linux 内核资源限制 -- 栈限制
1.序言今天某同事突然问我:我在Linux上写了一个测试程序,在函数内部定义了一个很大的数组,一运行就 Segmentation fault. 当时一想肯定是栈溢出了。其实这样说也不准确,还是决定去看内核代码,其实内核对用户进程是有资源限制的。2.task_struct既然是跟进程相关,那么首先得想到进程相关的数据结构task_struct,查找资源限制相关的结构,task_struct里原创 2016-11-19 09:49:43 · 1325 阅读 · 0 评论 -
利用C语言"位域"的特殊性来对数组进行边界检查
1.序 数组越界时常有发生,如果我们能够让编译器提醒我们犯错那是最好。2.例子#include <stdio.h>#include <stdlib.h>#define ARRAY_CARDINALITY(Array) (sizeof(Array) / sizeof(*(Array)))#undef YIN_VERIFY#define YIN_VERIFY(name,cond) stat原创 2017-12-06 10:31:16 · 1090 阅读 · 1 评论