- 博客(36)
- 资源 (4)
- 收藏
- 关注
原创 kenfish创新版软件指南
一、 用户程序开发SmartTuna采用FreeRtos作为操作系统,需要开发者对FreeRtos有一定的开发经验,SmartTuna通过头舱对其他舱进行控制,我们已经提供了一个通过头舱节点对SmartTuna进行自动控制的demo,demo演示了对SmartTuna 摆动推进舱、螺旋桨推进舱、传感器舱进控制和数据获取等操作的接口和例子,keil工程demo在文件夹 开发源码_头舱stm32 里,主
2017-07-14 12:05:11
1133
原创 嵌入式程序设计动态内存和静态内存的方案选择
在网上看到很多关于在嵌入式上是否使用动态内存及如何应对内存碎片的文章,我在进行嵌入式程序设计时也老在纠结这个问题。 内存碎片是由动态内存分配造成的,经过频繁的动态分配和释放后,在很多内存段上会出现两个已经被分配的内存快之间有一段很小的空闲内存的情况,这些小的空闲内存就是所为的碎片。 因为这些小内存并不连续而且小到无法或者很难再被利用起来,所以会导致本来系统有空闲的内存但应用程序确
2015-11-05 11:36:03
1115
转载 Windows环境下libxml2库的使用小结
转自:http://www.cnblogs.com/imlucky/archive/2012/10/29/2744992.html(1)--环境的搭建,下载与安装LIBXML2和ICONV Libxml2是一个C语言的XML程序库,可以简单方便的提供对XML文档的各种操作,并且支持XPATH查询,以及部分的支持XSLT转换等功能。Libxml2的下载地址是http:/
2014-10-27 08:58:12
2299
转载 V4L2摄像头获取单幅图片测试程序
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #i
2014-10-23 08:27:42
685
转载 linux之V4L2摄像头应用流程
对于v4l2,上次是在调试收音机驱动的时候用过,其他也就只是用i2c配置一些寄存器就可以了。那时只是粗粗的了解了,把收音机当作v4l2的设备后会在/dev目录下生成一个radio的节点。然后就可以操作了。后来就没怎么接触了。这周,需要调试下usb的摄像头。因为有问题,所以就要跟进,于是也就要开始学习下linux的v4l2了。看到一篇很不错的文章,下面参考这篇文章,加上自己的一些见解,做一些总结把。
2014-10-22 15:01:50
1071
转载 Linux下V4L2拍照测试用例
#include #include #include #include int main(){ ////// int fd = open("/dev/video0",O_RDWR); printf("TK------->>>fd is %d\n",fd); ////// struct v4l2_capability cap; ioctl(fd,V
2014-10-22 11:54:52
847
转载 Linux下使用V4L2读取获取拍照(获取静态图像)
Linux下使用V4L2读取获取拍照(获取静态图像)#include 1. 打开设备 int fd = open("/dev/video0", O_RDWR);2. 查询设备属性 struct v4l2_capability cap; ioctl(fd, VIDIOC_QUERYCAP, &cap); 3. 设置图像帧格式和像素大小
2014-10-22 11:53:08
4351
1
转载 使用vs2008制作dll文件,生成动态链接库
1.制作dll文件 vs2008中,File > New Project > Other Language > Win32 > Win32 Console Application. 输入项目名称:MyDll。点击【OK】,【Next】,选择dll单选按钮,完成。 vs2008会自动生成一些代码,不用管它。创建MyDll.h,代码如下 MyDll.h 为了提高可用性
2014-09-01 11:01:09
735
转载 DSP芯片的定点运算
3.1 数 的 定 标在定点DSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。一个整型数的最大表示范围取决于DSP芯片所给定的字长,一般为16位或24位。显然,字长越长,所能表示的数的范围越大,精度也越高。如无特别说明,本书均以16位字长为例。DSP芯片的数以2的补码形式表示。每个16位数用一个符号位来表示数的正负,0表示数值为正,1则表示数值为负。其余15位表
2014-08-09 09:58:29
3873
转载 C语言的数组初始化
这是很基础的东西,但基础的重要性不言而喻,我敢肯定这个知识点我肯定曾经了解过,但现在,我不敢确定,由此可见纪录的重要性,这世界没有什么捷径,找对方向,然后不停重复.所以从今天开始,我会比较详细的纪录这些比较小的知识点,其实还是有不少有意思的地方的. 写这篇文章的起因在于>第七章新东西太多,看的我目不暇接,所以在网上找了些例子看,其中就有一个例子中出现了这样的语句: ...
2014-08-04 08:54:34
703
转载 回声消除技术
从应用平台来看,可以把回声消除分为两大类:基于DSP等实时平台的回声消除技术和基于Windows等非实时平台的回声消除技术。两者的技术难度和重点是不一样的。 基于DSP平台的回声消除技术 回声消除技术传统的应用领域是各种嵌入式设备,包括各种电信网络设备和终端设备。网络设备比如交换机,网关等等,终端则包括移动电话终端,视频会议终端等。现代通讯产品里面大量应用了回声消除技术,包
2014-08-02 13:38:16
1120
转载 内存对齐.结构体对齐
gcc 中的"__attribute__ ((packed))" __attrubte__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐。#define __u8 unsigned char#define __u16 unsigned short/* __attribute__ ((packe
2014-08-02 11:39:15
552
转载 多线程中的Volatile
多线程中的Volatile在UE的多线程环境中,资源处理,渲染很多地方使用了Volatile关键字,自觉在并行方面知识甚少,趁空闲时机,Mark一记,转些相关方面的文档,学海无涯,愿求之甚解。一(转自http://www.cnblogs.com/yc_sunniwell/archive/2010/06/24/1764231.html)什么是volatilev
2014-07-31 15:08:13
551
转载 Linux与Windows线程机制简单比较
线程机制是现代编程技术中常用的一种抽象。该机制提供了在同一程序内共享内存地址空间运行的一组线程。这些线程还可以共享打开的文件和其他资源。线 程机制支持并发程序设计(concurrent programming),在多处理器系统上,它也能保证真正的并行处理(parallelism)。 Linux实现线程的机制非常独特。从内核的角度来说,它并没有线程这个概念。Linux的线程都当作进程来实现。内
2014-07-25 09:49:34
1593
转载 Linux内核线程之深入浅出
【摘要】本文首先介绍了进程和线程的区别,接着分析了内核线程、轻量级LWP线程以及常见的用户线程的特点,同时介绍了内核线程和进程的区别。分析了创建内核线程kernel_thread函数的实现过程,介绍了一个在驱动中使用内核线程的实例。最后针对内核线程创建销毁的特点,给出了通用的内核线程操作函数API,使用该API可在自己的驱动或内核代码中方便的使用内核线程。 【关键词】线程,进程,内核线程,
2014-07-25 09:13:15
635
转载 Linux 线程实现机制分析
转自:一.基础知识:线程和进程按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。无论按照怎样的分法,一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如cpu、内存、文件等等),而将线程分配到某个cpu上执行。一个进程当然可以拥有多个线程,此时,如
2014-07-25 09:06:06
600
转载 Linux内核抢占实现机制分析
Linux内核抢占实现机制分析 Sailor_forever sailing_9806@163.com转载请注明http://blog.youkuaiyun.com/sailor_8318/archive/2008/09/03/2870184.aspx 【摘要】本文详解了Linux内核抢占实现机制。首先介绍了内核抢占和用户抢占的概念和区别,接着分析了不可抢占内核的特点及实时系统中
2014-07-23 09:11:55
725
转载 alsa 音频库的移植
alsa 是在LINUX出现比较晚的音频处理库,主要是针对原有的OSS的库进行改进.性能更好,支持多个播放源等.但相应的,增加的编程的复杂性. 旧的oss是采用标准文件IO接口,设备打开采用open,声音播录是采用数据IO接口(read/write),设备的参数采用ioctl来控制.都是 系统调用因此无需额外库和配置文件来操作设备.但alsa也是最终采用open/read/write/ioc
2014-07-13 11:52:42
1057
转载 Hi3515自带串口驱动加载说明 .
转自: http://blog.youkuaiyun.com/olei_oleitao/article/details/7383592
2014-07-08 10:58:46
702
转载 从Linux内核映像中提取内核配置文件
的内核配置工作变得更轻松,从linux 2.6开始内核提供了一种将.config附加到映像文件的方法,通过这种方法,内核配置者可以不必备份当前的.config文件,而是在需要的时候直接从内核映像中提取.config文件。步骤如下:1. 配置内核1.1 make menuconfig;1.2 选择如下:General setup ---> Kernel .con
2014-07-02 11:43:28
1941
转载 linux 下route命令
转自为了让设备能访问另一个子网,需要在设备里增加路由到子网络,下面是一些资料。基本操作如下:一般来说,都是为了能访问别的子网才设置路由的,比如说,你的主机处于192.168.10.0/24,而你想访问192.168.20.0/24网的主机,当然你知道一个网关IP,例如192.168.10.1(必须和你主机处于同一子网),那么,你可以这样配置路由。添加路由route add -net
2014-06-27 07:52:26
547
转载 ubuntu快捷键
http://blog.youkuaiyun.com/csf111/article/details/8333595 ubuntu快捷键一直使用ubuntu 10.04开发,感觉不错,但老是不会用快捷键盘,所以我今天整理一下,自己使用方便,有利于提高开发速度,提高工作效率。1 启动/寻找程序ALT+ F1:启动程序菜单ALT+ F2:启动“运行应用程序”对话框2 启动终端
2014-05-28 08:53:58
536
转载 libxml库之xmlParseMemory和xmlDocDumpFormatMemory函数 .
两个函数,怎么在内存中处理xml文件。有个疑问,xmlChar *xmlbuff;这样系统第一次分配了xmlbuff的大小以后。对xml做修改,可以成功吗。有空试试。函数原型:[cpp] view plaincopyprint?xmlParseMemory xmlDocPtr xmlParseMemory (const char
2014-05-21 08:49:35
4270
转载 linux下avi文件解析(附源码)
前段时间由于项目需要,要解avi文件,当时我第一时间想到用ffmpeg来处理,但想想觉得太大了,又是放到arm上跑的,感觉没必要。然后,搜索引擎上稍微搜了一下,没找到有用的示例,大部分都是利用windows的api进行读写,很明显linux下用不了。结果花了2-3天时间研究并写了一个avi文件的解封装代码,但是后来因某些原因没有去使用AVI了,所以代码也没进行后续的完善优化。这里贴出来供记录以及需
2014-05-20 22:04:50
1444
转载 avi规范
RIFF文件规范Peter Lee 2007-10-02 摘要:RIFF全称为资源互换文件格式(Resources Interchange File Format),RIFF文件是windows环境下大部分多媒体文件遵循的一种文件结构,常见的如WAV文件、AVI文件等。RIFF可以看成一种树状结构,其基本组成单元为LIST和CHUNK,分别如树的节点和叶子。 一、RIFF文件简
2014-05-20 21:45:22
1014
转载 GNU Libtool 的用途及基本使用方法
摘要:简介: 这篇文档向大家介绍 GNU Libtool 的用途及基本使用方法,同时描述如何结合 GNU Autoconf 和 Automake 来使用 Libtool。 介绍 在不同的系统中建立动态链接库的方法有很大的差别,这主要是因为简介: 这篇文档向大家介绍 GNU Libtool 的用途及基本使用方法,同时描述如何结合 GNU Autoconf 和 Automake 来使用 Lib
2014-05-07 09:43:29
643
转载 Linux ALSA声卡驱动之三:PCM设备的创建
1. PCM是什么 本博内容由http://blog.youkuaiyun.com/droidphone原创 PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值
2014-03-13 17:07:55
885
转载 fm1188简介
FM1188-GA1是采用SAM(小阵列麦克风)技术的SoC(系统芯片),是该公司最新推出的语音处理芯片型号。它提供了更好的噪声抑制和更好的语音质量,以及非平稳噪音抑制和优越的全双工能力。 采用富迪SAM技术的两个麦克风的间距可小于10MM,在技术上已远超常规阵列麦克风的设计,SAM的指向性波束形成技术能精确的形成一个锥状窄波束,只接收说话人的声音同时抑制环境中的噪音与干扰,可以支持O+
2014-03-12 11:11:12
4853
转载 Linux ALSA声卡驱动之二:声卡的创建
本博内容由http://blog.youkuaiyun.com/droidphone原创1. struct snd_card 1.1. snd_card是什么snd_card可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在snd_card的管理之下,声卡驱动的第一个动作通常就是创建一个snd_card结构体。正因为如此,本节中
2014-03-11 16:20:19
685
转载 Linux ALSA声卡驱动之一:ALSA架构简介
本博内容由http://blog.youkuaiyun.com/droidphone原创一. 概述 ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/。 在内核设备驱动层,ALSA提
2014-03-11 15:18:57
604
原创 dm365 gpio按键驱动分析
dm365的按键驱动基于plamform总线和input子系统驱动架构,与一般的字符设备驱动很不一样,必须要对palmform总线和input子系统有所了解,因此像我这种初学菜鸟添加一个简单的gpio按键都会被弄得头晕目眩。 我的理解palmform总线事实上是内核的一种架构,这个架构能够使得驱动程序和具体的设备分离,两者通过匹配的方式找到对方,这样做的好处是使得核心代码(驱动)和
2014-02-14 00:54:30
1459
原创 可以跑在Linux-3.0 .x 上的 LINUX设备驱动程序(LDD3)例程
LINUX设备驱动程序(LDD3)例程在Linux-3.0 .x代码树编译的时候会出现不少错误,如Makefile中出现“Fix it to use EXTAR_CFLAGS”,编译main.c时出现“unknown field ’ioctl‘ specified in initializer”等, 这是由于新版本的内核一些头文件和接口的名称有所修改而出现的,在下面的连接中有详细的原因分析(虽然
2013-06-23 11:37:52
762
原创 内核模块的Makeflie编写
内核模块的Makeflie在执行时首先进入到 内核代码树执行其顶层的Makefile执行,然后再次进入这里读取编译目标和文件依赖关系进行真正的编译工作,因此执行一次make此Makefile就会被执行两次,这两次过程需要用条件语句来判别,这里用了变量KERNELRELEASE,它原来为空,在执行内核顶层Makefile时被赋值(即第一次执行此模块Makefile时),因此第一次执行else后面的流
2013-06-23 11:13:22
843
原创 QT下如何实现SQLite动态创建表
网上有很多人问SQLite动态创建多个表的问题,但几乎没有人给出满意的答案,事实上在QT环境下利用类QString很简单就能做到: 1.建立一个存储表名的QString 变量:QString name=“table_”;2.建立一个存储SQLite创建表格语句的QString变量: QString add=QString("create table '%1' (id
2012-08-10 15:07:54
4498
2
LDD3例程,修改至linux-3.0版
2013-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人