自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(12)
  • 资源 (6)
  • 收藏
  • 关注

原创 快速阅读大型嵌入式C代码方法汇总

1、 阅读代码要做的第一件事情是收集所有和项目相关的资料,例如:需求分析报告、概要设计报告、详细设计报告,使用手册、测试报告等,尽量多收集对你以后的代码阅读是很重要的2、从main函数入手根据调用大致掌握整个代码的架构和模块,主要模块的初始化和划分一般都是在main函数里,所以第一个要从main函数入手。3、根据初始化函数和线程函数来切入某一模块,因为一个模块的开始肯定是初始化,而且常常一

2016-05-31 17:20:21 1513 1

原创 NVR开发重要bug总结

本次做摄像头监控主要遇到的问题有2个。1:丢帧问题。协议采用的是基于rtp的Udp协议。2:花屏问题。丢帧问题解决思路:1:采取双线程机制。     如果接收和解码在一个线程中,那么会遇到一个问题就是如果解码一个较大的帧,这时发送端发送2个较小的帧。这时就只能保存一个帧,从而出现丢帧的问题。:2:发送端采取双线程增加缓冲区机制。     缓冲区采用循环队列的方式。 

2016-08-24 22:32:20 521

转载 快速排序法

步骤:从数列中挑出一个元素,称为 “基准”(pivot),重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序

2016-07-13 09:23:29 91

原创 sockfd连接后如何获得对方和本机的ip地址和端口

TCP 对于服务器来说,在bind以后就可以调用getsockname来获取本地地址和端口,虽然这没有什么太多的意义。getpeername只有在链接建立以后才调用,否则不能正确获得对方地址和端口,所以他的参数描述字一般是链接描述字而非监听套接口描述字。 对于客户端来说,在调用socket时候内核还不会分配IP和端口,此时调用getsockname不会获得正确的端口和地址(当然链接没建立更不可能

2016-06-24 17:39:05 761

原创 system()函数用法

先看实际使用 customizationInit(); //writeLog(LOG_MAJOR_SYSTEM, 0, 0, "system", "127.0.0.1", "system start"); system("rm -rf /config/*.log");//即相当于在shell环境下执行 rm -rf /config/*.log P2pSnUpdate();s

2016-06-02 12:38:38 247

原创 线程池、函数指针、 pthread_cond_signal和pthread_cond_wait融合示例详解(附代码)

线程池、函数指针、pthread_cond_signal和pthread_cond_wait分析(附代码)等融合知识的代码示例

2016-06-01 18:34:42 269

原创 嵌入式gdb + gdbserver调试

在很多情况下,需要对应用程序进行调试。在 Linux 下调试程序,常用的工具是 gdb。由于嵌入式单板的资源有限,一般不直接在目标机上运行 gdb 进行调试,而是采取gdb+gdbserver 的方式。 gdbserver 在目标机中运行, gdb 则在宿主机上运行。根文件系统中已经包含 gdbserver。使用 gdbserver 调试应用程序的步骤如下所示:1. 启动 Li

2016-05-31 17:51:31 168

原创 嵌入式软件内存泄露工具mtrace使用方法

mtrace是一个有效的工具来查看有没有内存泄漏。它会将内存出现的异常记录在日志中,而日志的路径是可以指定的。使用mtrace来调试程序有4个基本的步骤,需要用到GNUC函数库里面的一些辅助的函数功能。1.在需要跟踪的程序中需要包含头文件,而且在main()函数的最开始包含一个函数调用:mtrace()。由于在 main函数的最开头调用了mtrace(),所以该进程后面的一切分配和

2016-05-17 20:45:08 980 1

原创 嵌入式电路板上 tcpdump 抓包方法

1、首先下载tcpdump工具,将其拷贝到板子上的目录下 这里是共享目录nfs下2、在nfs目录下执行 ./tcpdump   -w  xxx.tcpdump   命令,再执行程序则会在当前目录下生成xxx.tcpdump文件3、将生成的xxx.tcpdump拷出, 拖拽到打开的wireshark 中 选中一个包,然后右键,点击Follow TCP Stream 即可查看包信息4、注意

2016-05-17 20:20:01 323

转载 sysinfo函数使用方法

1、Linux中,sysinfo是用来获取系统相关信息的结构体。函数声明和原型:int sysinfo(struct sysinfo *info);返回值:操作成功返回0,错误返回-1;2、结构体信息:在Linux 2.3.16中,结构体的信息是(单位是字节):struct sysinfo {               long u

2016-05-17 19:42:56 616

原创 linux内核移植

1、解压#sudo tar -jxvf android_kernel_2.6.35_smdkv210.tar.bz2#sudo chmod 777 android-kernel-samsung-dev/ -R-------------------------------------------------------------------------2、linux内核源码的结构

2015-07-20 08:46:43 282

原创 超详细uboot的移植(GEC210开发板)

uboot的移植是一个挺麻烦的过程,很多初学者都对此感到一头雾水,本文以GEC210开发板为例来介绍一下uboot的移植过程。首先介绍一下什么是移植。一、概念和条件将别人发布的源码做修改(针对自己的开发平台),然后让这段代码在自己的平台上运行。移植的目标是GEC210ARM开发板,移植的源码是samsung公司的smdkv210开发板的源码。 移植的条件:移植的源码所支持的cpu要

2015-07-15 19:19:47 1642

tcp_udp_rtp协议实现rtsp协议

tcp方式实现rtsp,udp方式实现rtp的rtsp/rtp协议源代码。

2017-03-27

rtp协议客/服端源码

rtp客户端服务端代码

2017-03-27

海思sil9024/sil9022驱动

海思35xx系列sil9022/9024驱动源码

2017-03-27

不知道recv大小时如何设置buffer大小接收图像

关于recv函数buffer大小的设置,当不知道数据长度时如何设置buffer长度,以及buffer长度对实际接收长度的影响。

2017-03-27

CC2500官方数据表英文版

此文档为2.4GCC2500无线通信模块官方数据表格,主要介绍了2500的参数和规格!

2014-07-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除