- 博客(52)
- 资源 (7)
- 收藏
- 关注
原创 无锁队列(一)
一、数据结构Head,Tail是队列的头和尾。二、基础知识一般的处理器,有一条指令,一个周期就可以执行,也可以说是原子操作,是不可分割的。CAS操作——Compare & Set,或是 Compare & Swap,现在几乎所有的CPU指令都支持CAS的原子操作,X86下对应的是 CMPXCHG 汇编指令。有了这个原子操作,我们就可以用其来实现各种无锁(lock fre
2016-06-24 17:45:33
550
转载 linux驱动一 设备号的分配和管理
1.设备号的分配和管理在内核源码中,涉及设备号分配和管理的函数有两个1.register_chrdev_region函数将当前设备驱动程序要使用的设备号记录到chrdevs数组中,前提是驱动程序已经知道要分配的设备号是多少啦int register_chrdev_region(dev_t from,unsigned int count,char*name
2016-06-19 09:06:20
3481
转载 由内存屏障查到的
__asm__ __volatile__("": : :"memory")内存屏障(memory barrier) #define set_mb(var, value) do { var = value; mb(); } while (0) #define mb() __asm__ __volatile__ ("" : : : "memory")1)set_mb(),m
2016-06-15 15:56:53
426
原创 TI DSP的堆分配
1 关于malloc和Memory_alloc的区别 1.1 Summary· Malloc是标准C的函数,它是从system heap上分配buffer。在使用BIOS的情况下,通过BIOS.heapSize = 0x2000设定system heap的大小,在不使用BIOS的情况下要在cmd文件中用-heap设定sytem he
2016-05-28 20:21:29
5003
原创 i2c的调试
int main (void){ i2c_module_write_test(0x51,0x00,0x00); i2c_module_write_test(0x51,0x00,0x02);//如图1所示}// i2c 测试函数void i2c_module_write_test(uint16_t dev_address, uint8_t address, uint8_
2016-05-27 16:57:39
2241
原创 C6678中的PCIE相关总结(1)
Outbound Address Translation(OAT):把设备内部地址映射到PCIE总线上。Inbound Address Translation(IAT):和BAR(Base address registers)配合使用,把BAR过滤后的PCIE总线地址转换成设备内部地址。PC端的代码,需要与C6678通过PCIE通信时,此时使用OAT,先把DSP的地址翻译
2015-07-24 17:42:52
5264
转载 讲的最明白的双线性插值
双线性插值作为OpenCV中默认使用的图像缩放算法,其效果和速度都是不错的。并且效果也比较稳定,计算复杂度并不算太高。我看了很多网上的算法,自己也没看太懂,下面是从网上找的双线性插值 算法的讲解。 “图像的双线性插值放大算法中,目标图像中新创造的象素值,是由源图像位置在它附近的2*2区域4个邻近象素的值通过加权平均计算得出的。双线性内插值算法放大后的图像质量较高,不会出现像素值不连续的的
2014-09-23 21:14:31
922
转载 CCS下编译h264enc测试程序(DM6467)
安装h264enc下载windows版h264enc,版本号1_20_02_00,下载链接:http://software-dl.ti.com/dsps/dsps_public_sw/codecs/DM6467/index_FDS.html,安装完成后将安装目录下的压缩包解压到个人目录下。安装组件DSP/BIOS下载5.31版DSP/BIOS安装包,下载地址:http://
2014-08-20 22:42:41
1873
转载 DM642基于CCS3.3问题总结
1. 本想在一个函数里建立一个很大的数组,函数运行完会自动删掉,但那是没法做到的,这个大数组最好是声明为全局变量,并且把它存到外部扩展内存里,不要让它占用有限的片上内存,不然程序很容易跑飞。C语言本身的跑飞现象比较好查,而因为内存问题而跑飞,很隐秘,很难查。声明存到外扩的片子上:#pragma DATA_SECTION(G, ".G");然后在.cmd文件里写:.G > CE0或者也
2014-08-20 22:25:14
2496
转载 DM642的中断学习
在非DSP/BIOS中使用CSL API进行设置如下(参考内容2中提到,在DSP/BIOS设置更简洁):1. 编写中断服务例程在.c源文件中编写ISR函数c_intXX,用于中断处理,如:interrupt void c_intXX (void){ …;}注:对于硬件中断而言,XX = 00~15。2.初始化中断向量表,并在内存段中的中断
2014-08-20 21:07:54
1798
转载 WSAAsyncSelect模型
WSAAsyncSelect模型 WSAAsyncSelect模型是Windows socket的一个异步IO模型。利用该模型可以接收以Windows消息为基础的网络事件。Windows sockets应用程序在创建套接字后,调用WSAAsyncSelect函数注册感兴趣的网络事件,当该事件发生时Windows窗口收到消息,应用程序就可以对接收到的网络时间进行处理。
2014-07-14 16:17:22
666
转载 CACHE 函数 for ti
1.CACHE_clean:Function void CACHE_clean( CACHE_Region region, void *addr, Uint32 wordCnt);Arguments region Specifies which cache region to clean; must be one
2014-05-15 14:59:04
1979
转载 flv格式学习
FLV(Flash Video)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地使用了FLV格式。另外由于当前浏览器与Flash Player紧密的结合,使得网页播放FLV视频轻而易举,也是FLV流行的原因之一。 FLV视频格式是Adobe公司设计开发的,目前已经免费开放,现在的版本是v10。下面我们就了
2014-04-23 15:22:03
832
转载 socket编程基础4(实例分析)
本文介绍了在Linux环境下的socket编程常用函数用法及socket编程的一般规则和客户/服务器模型的编程应注意的事项和常遇问题的解决方法,并举了具体代码实例。要理解本文所谈的技术问题需要读者具有一定C语言的编程经验和TCP/IP方面的基本知识。要实习本文的示例,需要Linux下的gcc编译平台支持。 Socket定义 网络的Socket数据传输是一种特殊的I/O,So
2014-02-12 16:28:49
943
转载 socket编程基础1(大、小端,IP地址格式转换,通信主机信息获取)
今天我们说说“Pre-网络编程”。内容比较杂,但都是在做网络应用程序开发过程中经常要遇到的问题。一、大端、小端和网络字节序小端字节序:little-endian,将低字节存放在内存的起始地址;大端字节序:big-endian,将高字节存放在内存的其实地址。 例如,数字index=0x11223344,在大小端字节序方式下其存储形式为:上图一目了
2014-02-12 11:19:37
2799
原创 c语言中常常用到的宏
__FILE__ //编译的文件 __LINE__ //代码所在的行 __FUNCTION__ //代码所在的函数 这三个宏,一般的编译器都认识。3.7.1 Standard Predefined MacrosThe standard predefined m
2014-02-11 14:33:50
1483
转载 socket编程基础2(socket API函数介绍)
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有
2014-02-10 17:02:47
9647
1
转载 socket编程基础3(和TCP/IP的关系)
对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 你会使用它们吗?什么是TCP/IP、UDP?TCP/IP(Transmission Control Protocol/Internet Protocol)
2014-02-10 16:59:57
1875
原创 socket编程基础5(linux中关于socket send一次可发送的最大值)
window中,socket send()函数可发600M一张的图片,可是同样的代码移植到Linux中就出问题,原因是这个的默认buffer不一样。以下是Linxu中的socket的相关信息: 1、从socket里一次最大读取字节数取决于接收buffer的大小,亦即socket的SO_RCVBUF对应的数值的2倍,这个2倍关系是内核决定的。2、所以关键在于SO_RCVBUF的大小了。
2013-12-30 13:25:15
10479
转载 CCS5 的基础知识
CCS5和CCS3.3有很大的区别,这篇文章很好第说明了CCS5的用法http://www.360doc.com/content/12/0612/01/9973286_217577620.shtml
2013-12-23 18:54:14
1441
原创 利用XDAS wizard tools生成xDM算法框架
XDAS wizard tools 下载地址 http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/xdais/index.html 选择版本是,注意版本中是否有代码生成工具。使用之前,要先安装好CCS 设置好CCS中xs.exe的路径,对于CCS 5,是利用脚本的形式运行 而 4.0
2013-12-11 16:54:42
1247
原创 CCS 的一些问题
1.ccs v5不同的版本差别很大,就我用过的 CCS V5.1 和 CCS V5.5来说,5.5能根据配置生成cmd文件,而5.1则不能,以至于emulator仿真时,5.1总报错。 2.把 CCS5.1卸载掉后,重装CCS5.5后,驱动安装文件虽然不变,但是还是要卸掉重装,否则建立配置文件时,找不到相应的仿真器选项。
2013-12-09 11:19:09
2671
转载 编译DSP代码遇到的问题
今天帮同事编译一个DSP代码,CCS5中编译,说找不到csl.h,转移到CCS3.3中编,说 _CACHE_clean符号未定义之类的,没有csl.h找不到的提示。在代码中搜索_CACHE_clean 其前缀为CSLAPI,这是个CSL库的API函数,猜CSL库没连接。指定CSL库,错误消除。在学习ti的dsp的时候,不可避免的要遭遇到“CSL”,在这里,我摘取
2013-11-28 16:41:49
1712
转载 从嵌入式LINUX下的C程序员角度来看编程
主要从嵌入式LINUX下的C程序员角度来看: 1、 要养成并习惯于在“先设计文档——再编码”的方式,先将设计思路、算法实现、程序 流程图以及关键数据结构陈述与设计文档中,尤其是程序流程图,一定且必须要画(除非是太简单的小程序可以 免去),通过做流程图,可将代码实现中的问题预见出来,对自己做处理的或者处理可能有问题的或者干脆未处理的代码分支有预判和预见,避免“大量编码——大量调试
2013-11-14 19:02:24
807
原创 debian 7中编译ffmpeg
问题1 ./configure 后出现common.mak:18: *** unterminated call to function `foreach': missing `)'. Stop. 更加网上的说法:make的版本低,下载新版本4.0 编译后。问题还是这样。make -v后其版本为3.8新版本的 make -v 为4.0 。 which make 发现make是交叉编
2013-11-13 23:52:22
2203
原创 debian 7 root用户下无法使用gedit
在root用户下输入 gedit后,显示No protocol specifiedError: Can't open display: :0.0退回到普通用户后xhost + 放开X Server的访问权限 root用户可以使用gedit了,可是每次都出现没有目录的提示信息,很扎眼。缺少目录进入root用户后sudo mkdir -p
2013-11-13 20:29:46
2353
原创 ffmpeg在mingw中的编译
x264在mingw中的编译参数 ffmpeg在mingw的编译参数 ./configure --enable-memalign-hack --arch=x86 --target-os=win32 --enable-gpl --enable-libx264 --prefix=/lib_external/ffmpeg/ --disable-pthreads --enable-
2013-11-12 17:04:04
804
转载 基于Ubuntu交叉编译FFmpeg Windows SDK
基于Ubuntu交叉编译X264, FFmpeg Windows SDK详细教程基于Ubuntu交叉编译FFmpeg Windows SDK写在前面 FFmpeg是一个开源且跨平台的音视频解决方案,集采集、转码、流式化为一身,项目的libavcodec编解码模块和libavformat媒体格式模块,支持非常非常丰富的编解码格式和容器封装格式,是做媒体相关开发工作必须要掌握和借鉴的
2013-11-12 16:51:40
681
原创 编译内核及内核模块
1、编译内核 make bzImage V=12、编译内核模块 make modules ARCH=arm CROSS_COMPILE=arm_v5t_le- 3、安装内核模块 make modules_install ARCH=arm INSTALL_MOD_PATH=/XXX/rootfs 4、制作ramdisk mkinitrd initrd-2.6.xx
2013-11-07 23:04:34
644
原创 mingw中编译ffmpeg过程
1 下载ffmpeg-2.1.tar.gz 2 在msys文件夹中mkdir opt ,将解压ffmpeg-2.1.tar.gz后的文件复制于此。3 获取帮助文档. 进入ffmpeg源代码,后 ./configure --heop > opention_help.txt4 ./configure --enable-memalign-hack 后出现 找不到 pr命令的提示[下载c
2013-11-07 00:04:27
677
原创 mingw的安装
1 安装 mingw 和 msys 执行下载文件:mingw-get-inst-xxxxxx.exe, 在第3步选择“Download latest repository catalogues” 选择安装路径:C:\MinGW(我直接采用默认路径,未做修改) 在“Select Components”步骤中选择: √ C Compiler (默
2013-11-06 21:02:04
714
转载 openssl交叉编译
62 #CC= gcc 63 CC = arm-unknown-linux-gnu-gcc 64 #CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAV E_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall 65 C
2013-11-01 23:01:14
711
1
原创 linux的自启动脚本
init进程启动后会运行 /etc/inittable中的命令/etc/inittable中开始定义了runlevel接着就给出了自启动的脚本 /etc/init.d/rcS接着:inittable————》运行级别————》rc.d中找到相应的级别文件rcn.d————》按照rcn.d中的S 和数字顺序启动相应的连接文件————》被连接的文件在init.d
2013-10-23 11:18:37
582
转载 H.264优秀博客网摘
http://70565912.blog.51cto.com/1358202/533736解释了 pic_order_cnt_lsb和i_frame_counter
2013-10-09 15:45:46
666
转载 pthread_cond_t条件变量
条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。 一 pthread_cond_wait定义: 函数原型:int pthread_cond_wait(pthread_cond_t *cond, pthre
2013-09-12 19:32:49
909
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人