
编程
文章平均质量分 83
ninver2007
这个作者很懒,什么都没留下…
展开
-
mipi raw10 转raw8 示例代码
代码思路参考raw10 转raw16 部分代码是我测试的时候小改#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>int main(int argc, const char *argv[]){ if (argc != 4) { printf("usage: <filename> <width> ...原创 2020-06-02 18:41:56 · 5118 阅读 · 1 评论 -
gnu c语言技巧
我们经常在编程中碰到一种情况叫符号重复定义。多个目标文件中含有相同名字全局符号的定义,那么这些目标文件链接的时候将会出现符号重复定义的错误。比如我们在目标文件A和目标文件B都定义了一个全局整形变量global,并将它们都初始化,那么链接器将A和B进行链接时会报错:b.o:(.data+0x0): multiple definition of `global'a.o:(.data+0x0): fir转载 2012-10-26 09:06:27 · 751 阅读 · 0 评论 -
高斯模糊处理(图像复原)源代码
#define EXTRA_NAME "@gausssmooth."#include "loadbmp.h"#define In(x,y) lpInput[(x)+(y)*nWidth]#define Out(x,y) lpOutput[(x)+(y)*nWidth]#define Mediate(x,y) lpMediate[(x)+(y)*nWidth]#define Po转载 2012-10-26 09:35:47 · 2262 阅读 · 0 评论 -
图像处理头文件源码
#if ! defined (_LOADBMP_H)#define _LOADBMP_H#if ! defined (EXTRA_NAME)#define EXTRA_NAME "~EX."#endif#include #include #include #include #define pi (double)3.14159265359int nWidth;转载 2012-10-26 09:38:58 · 895 阅读 · 0 评论 -
图像去除彩色源代码
#define EXTRA_NAME "@nocolor."#include "loadbmp.h"void NoColor(){ if (lpBitmap==0) return; int x,y,p; BYTE Point; for(y=0;y for(x=0;x { p=x*3+y*nByteWidth; Point=(BYTE)(0.2转载 2012-10-26 09:40:10 · 529 阅读 · 0 评论 -
傅立叶变换处理源代码
#define EXTRA_NAME "@fouriertransform."#include "loadbmp.h"#define Point(x,y) lpPoints[(x)+(y)*nWidth]void FFT(COMPLEX * TD, COMPLEX * FD, int power){ int count; int i,j,k,bfsize,p; doub转载 2012-10-26 09:32:18 · 650 阅读 · 0 评论 -
水平镜像处理源代码
#define EXTRA_NAME "@hormirror."#include "loadbmp.h"void HorzMirror(){ int x,y; BYTE *lpTemp=new BYTE[nByteWidth*nHeight]; for(y=0;y { for(x=0;x { lpTemp[x*3+y*nByteWidth]=lpBi转载 2012-10-26 09:34:36 · 625 阅读 · 0 评论 -
D1图像缩放成CIF源代码
void scale_D1_to_cif(unsigned char *src, unsigned char *dst){ int i, j; long long *restrict pUYVY0_0 = (long long*)(src+8); long long *restrict pUYVY0_1 = (long long*)(src + (720*2)*2+8); u原创 2012-10-26 09:47:12 · 788 阅读 · 0 评论 -
Yuv420转换成Yuv422算法源代码
void convert_yuv420p_to_yuv422_my(unsigned char *src,\ unsigned char *dst, int width,int height) { int i, j; unsigned char *pY420_0 = src; unsigned char *pY420_1 = src +width; unsigne原创 2012-10-26 09:45:25 · 1212 阅读 · 0 评论 -
DAVINCI DM36x开发攻略——U-BOOT-2010.12及UBL移植
从盛夏走到深秋,我们继续DAVINCI DM365-DM368的开发。说来惭愧,人家51CTO热情支持本博客,而本人却一直没有像其他博客之星一样频繁更新博客,心里确实说不过去。管理公司确实很累,有更急的客户的项目要做,我们成功先推出了DM6446-810MHz的核心板(http://www.tongyetech.com ),期间深圳安防展也接见了几个其他市的客户,然后继续我们的DM368开发。转载 2012-11-21 13:55:52 · 1118 阅读 · 0 评论 -
DM368 NAND Flash启动揭秘
作者:德州仪器现场技术支持工程师 孟海燕概要:本文介绍了DM368 NAND Flash启动的原理,并且以DM368 IPNC参考设计软件为例,介绍软件是如何配合硬件实现启动的。关键字:NAND Flash启动,RBL,UBL 芯片上电后是如何启动实现应用功能的?这是许多工程师在看到处理器运行的时候,通常都会问的一个问题。下面我们就以德州仪器的多媒体处理芯片转载 2012-12-07 15:18:34 · 1077 阅读 · 1 评论 -
dsp bios系统API详解
dsp bios任务切换设置基础类的DSP/BIOS API调用一、时钟管理CLK(1)Uns ncounts = CLK_countspms(void)返回每毫秒的定时器高分辨率时钟的计数值(2)LgUns currtime = CLK_gethtime(void)返回高分辨率时钟的计数值 超过32bit归零高分辨率时钟是DSP时钟除以(TDDR+1)(3)LgU转载 2013-03-26 12:45:49 · 1448 阅读 · 0 评论 -
基于GIO/FVID的DSP视频驱动程序
随着时代的发展,DSP技术在远程监控、可视电话、工业检测等视频处理领域得到了广泛的应用,对于不同的视频处理系统,会使用不同的视频设备,所以有必要为视频没备设计驱动程序,为高层应用程序提供统一的接口来操作底层硬件。只要是遵循此驱动程序接口标准开发的高层应用程序,都可以在具有相同接口的不同硬件平台上运行,具有很好的通用性和可移植性。同时高层应用程序设计人员只要会使用设备驱动程序提供的API接口,就不必转载 2013-03-26 12:38:42 · 1165 阅读 · 0 评论 -
DM648 FVID API函数
1) FVID_create()作用:是分配并初始化FVID通道对象;语法:fvidChan = FVID_create (name, mode, *status, optArgs, *attrs);参数定义: String name Int mode Int *status Ptr optArgs FVID_Attrs *attrs 其中:name是设备实例的翻译 2013-03-26 12:40:24 · 1034 阅读 · 0 评论 -
Android 驱动编写LED-NDK程序
这篇文章主要介绍了Android 驱动编写LED-NDK程序的相关资料,需要的朋友可以参考下1. 首先编写LINUX内核模块LED? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...转载 2019-07-24 18:27:09 · 288 阅读 · 1 评论 -
Android系统添加自定义按键
网上存在一些关于Android系统添加自定义按键的文章,但大多针对Android2.3和4.0系统的,许多文件都已经变动位置了,这两天我总结了一些,写出来欢迎大家交流与指正: Android系统通过*.kl文件将Linux按键传给上层,最新的Android4.4已经不再默认qwerty.kl文件了,代之的是frameworks/base/data/keyboards/Generic.kl...转载 2019-07-24 18:30:02 · 845 阅读 · 0 评论 -
dct变换源代码
#define EXTRA_NAME "@dcttransform."#include "loadbmp.h"#define Point(x,y) lpPoints[(x)+(y)*nWidth]void FFT(COMPLEX * TD, COMPLEX * FD, int power){ int count; int i,j,k,bfsize,p; double a转载 2012-10-26 09:37:31 · 1175 阅读 · 0 评论 -
用IAR调试芯唐Cortex-M0系列芯片指南
支持调试芯唐Cortex-M0芯片的工具很多,例如在Keil环境下,可搭配Ulink2或芯唐的Nu-Link调试器进行调试;而在IAR EWARM集成环境下,则可以搭配万利的Mlink,或搭配芯唐的Nu-Link调试器进行调试。本文将基于IAR EWARM + Nu-Link的组合,介绍用IAR调试Cortex-M0芯片的办法。 一、功能介绍:在调试之前,首先让我们先了解一下N转载 2012-10-22 14:10:14 · 3547 阅读 · 0 评论 -
mb, smb_mb() barrier()
mb,,smp_mb() barrier()2010-09-01 15:39讨论一下,为什么他的那个例子: + (2) Multiprocessor interaction + + When there's a system with more than one processor, these may be working + on t转载 2012-10-10 10:13:44 · 1170 阅读 · 0 评论 -
tms320dm6446内核启动分析
关于达芬奇DM6446,里面内部有两个部分,一个是ARM926ejs的核,还有一个是C64+DSP的视频处理核,而我需要关心的重点是arm926ejs的核(bootload和linux内核)从bootloader可知, 第一阶段主要是负责检测arm926ejs的相关硬件平台(主要是内存等),而第二阶段主要将内核映象以及根文件映象拷贝进入到RAM中运行!硬件存储地址说明:翻译 2012-10-08 15:50:46 · 1463 阅读 · 1 评论 -
USB硬盘驱动框架
USB硬盘驱动框架前言:USB驱动在LINUX中占有重要地位,因此了解USB框架是十分必要的,下面以USB硬盘为例了解整个USB驱动的结构。DAVINCI USB驱动的框架图:USB-COREHCD(MUSB CONTROLLER)LOW-LEVEL DRIVER原创 2012-09-21 16:48:04 · 785 阅读 · 0 评论 -
#pragma DATA_SECTION
今天读DSP的图像采集程序,遇到了一点陌生的东西:ti的帮助文档里是这么讲的:The DATA_SECTION pragma allocates space for the symbol in a section called section name. The syntax for the pragma in C is:#pragma DATA_SECTION (sy转载 2012-10-15 09:39:19 · 735 阅读 · 0 评论 -
C语言的函数指针
定义一个函数指针。比如:定义一个指向函数的指针,该函数有一个整形参数并返回一个整型值 int(*fun)(int); 再比如原来函数是void func(void);那么定义的函数指针类型就是: typedef void(*Fun)(void);然后用此类型生成一个指向函数的指针。 原文摘录:struct { void (*fun转载 2012-10-12 08:43:54 · 1277 阅读 · 0 评论 -
嵌入式C语言之---模块化编程
当你在一个项目小组做一个相对较复杂的工程时,意味着你不再独自单干。你需要和你的小组成员分工合作,一起完成项目,这就要求小组成员各自负责一部分工程。比如你可能只是负责通讯或者显示这一块。这个时候,你就应该将自己的这一块程序写成一个模块,单独调试,留出接口供其它模块调用。最后,小组成员都将自己负责的模块写完并调试无误后,由项目组长进行组合调试。像这些场合就要求程序必须模块化。模块化的好处是很多的,不仅转载 2012-10-12 08:48:09 · 840 阅读 · 0 评论 -
DM6446 uboot分析
1. 顶层目录下的Makefile按照配置顺序:davinci_config : unconfig@./mkconfig $(@:_config=) arm arm926ejs davinci执行配置命令:make davinci_config通过./mkconfig脚本会生成include/config.mk的配置头文件。内容如下:ARCH = arm翻译 2012-10-08 15:56:00 · 1527 阅读 · 0 评论 -
视频YUV4:2:2转4:2:0的TI DSP源代码
视频YUV4:2:2转4:2:0的TI DSP源代码网络上有很多有关YUV4:2:2转YUV4:2:0的描述,但大多数都是讲解原理,没有实际性的做法,本文把自己在TI DAVINCI DM6446 端的测试过的代码奉献出来,供大家参考和学习,同时抛砖引玉,希望得到大家的指点。本方法适合TI DM642,DM643x,DM644x等DSP系列,前段图像采集格式一般都是YCbCr 4:转载 2012-10-15 09:49:19 · 840 阅读 · 0 评论 -
DSP优化C循环的例子
#define WORD_ALIGNED(x) (_nassert(((int)(x) & 0x3) == 0))/*输入参数加上关键字restrict,内存独立声明,xptr yptr指向的区域不重合*/void lesson3_c(short * restrict xptr, short * restrict yptr, short *zptr, sho转载 2012-10-16 08:52:06 · 1237 阅读 · 0 评论 -
达芬奇平台DM644X(ARM9, Linux-2.6.10)BSP之clock.c分析
--------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://zhiqiang0071.cublog.cn-------------------------------------------- /*转载 2012-10-16 09:00:12 · 836 阅读 · 0 评论 -
如何在C中使用C++的类
Today I had a little chat with Michiel on #gnome-nl regarding the use of C++ classes in C code (he started learning C again ;-)).I was fascinated (well, sort of) by this, and tried to get some转载 2012-10-16 09:02:10 · 928 阅读 · 0 评论 -
非整数倍率YUV422图像的自由缩放算法
下面的代码,实现将一幅YUV422的双通道图片(640x480大小),取中间区域(560x400大小)使用插值的办法放大至(640x480)。这个算法可以用来实现将图片外围区域截掉。#define X_RATIO (8)#define Y_RATIO (6)PUBLIC void YUVScale(JINF_YUV_CHN_T *const yuv_ptr,const uint转载 2012-10-18 13:35:25 · 2028 阅读 · 1 评论 -
AT91初始化代码手册中文翻译版
介绍由于多种原因基于ARM的AT91的大多数应用代码使用C语言编写。然而,启动顺序要求初始化ARM处理器和严重依赖于寄存器结构的关键设备和内存映射处理机,和存储器重映射操作。由于这个原因,C启动序列必须用汇编编写。这个应用笔记描述了一个AT91的C代码启动序列示例。他是使用ARM ADS1.1开发工具为AT91评估板写的基于C启动序列。更多的可用C启动序列示例见AT91库。在上电并且复位后转载 2012-10-18 13:44:37 · 740 阅读 · 0 评论 -
AdaBoost人脸检测训练算法
前在实际中应用的人脸检测方法多为基于Adaboost学习算法的方法,这种检测方法最初由剑桥大学的两位大牛Paul Viola和Michael Jones[ViolaJones01]提出,并由另一位大牛英特尔公司的Rainer Lienhart[Lienhart02]对这一方法进行了改善。这里,我先介绍ViolaJones的人脸检测方法,然后再介绍Lienhart的人脸检测算法。我们转载 2012-10-30 12:20:35 · 1704 阅读 · 0 评论 -
车牌识别之车牌定位
一直研究车牌识别算法,主要关注车牌定位和字符识别。我想分享一下我对车牌定位的看法。 从根本上讲,车牌定位的算法分为三类,一类是基于边缘的,一类是基于颜色的,一类是基于机器学习的,这三种方法我都做过实验,基于边缘的最简单也最有效,如果对于收费站和小区的应用,做到99%以上的检测率不是件难事,但如果场景复杂一点,误检会比较多,但并不会漏掉真正的车牌,只是虚警率高点,可以通过先验知识、颜色转载 2012-10-30 12:21:34 · 1982 阅读 · 3 评论 -
嵌入式C语言不可不用的关键字
1.static关键字这个关键字前面也有提到,它的作用是强大的。要对static关键字深入了解,首先需要掌握标准C程序的组成。标准C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分,也就是你的程序。一个程序只有一个副本;只读,这是为了防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在转载 2012-10-12 08:49:21 · 682 阅读 · 0 评论