- 博客(95)
- 资源 (7)
- 收藏
- 关注
转载 2013年9月华为机试题目
这一次的机试题目比以前的稍微难了一点点,这次整理的题目不一定很难,但是也是很基础的操作,我不可能知道机试的题目,就我的个人经验而言,机试的题目可能有一定的难度,但是不外乎一些基本的操作,这一次的改变就是二叉树、栈等其它数据结构类型的比例比以前增加了许多。ps:下面的程序比5月份的版本更加可靠,也均在vs2005环境上面编译通过,为什么选择vs2005环境,一个是vs2005环境比6.0的编译规
2017-08-31 15:53:57 232
原创 relation window窗口source insight查看函数的上一级调用
在source insight的view菜单中点出relation window,然后右键点relation window,选relation window properties,然后把view relation里所有的下拉选项全部选成references,这时候relation window里显示的就是当前函数和调用他的函数的关系了。另外,在view relation上面右击选择re
2017-08-31 14:12:02 6929
原创 可伸缩定义,一个16位的变量分成2段保存数据
#include #include #include /*可伸缩定义,一个16位的变量分成2段保存数据//**** Definition of macros ****/typedef unsigned short U16;typedef unsigned char U8;//定义LOW,HIGH各占几位保存#define DV_LOW_SIZE 8#define DV
2017-08-31 13:50:31 384
原创 Uboot 启动流程分析:启动阶段2 board.c
转载请注明原地址:http://blog.csdn.net/oyhb_1992/article/details/76836821Uboot 启动流程分析:启动阶段2 board.c 由启动阶段一,ldr pc, _start_armboot这条语句绝对跳转到内存中继续执行_start_armboot这个函数,开始阶段2的代码。首先要介绍几个结构体
2017-08-31 11:14:20 705
原创 多次包含同一个头文件,实现只写一句宏定义就可以定义出两个不同类型的变量
如何实现只写一句宏定义就可以定义出两个不同类型的变量?youli.h/*转载请注明原文地址:第一次包含这个头文件会定义宏AUD_OP_1,并定义了一个枚举类型AUDIO_MAILBOX_MSG_TYPE第二次包含这个头文件会定义宏AUD_OP_2,并定义了一个函数指针数组aud_op_function*/#ifndef _AUD_OP_DEF_H_#define _AUD_OP_D
2017-08-31 11:01:55 1164
转载 sourceinsight的 project window窗口调整
每次用Source Insight在看代码时,每次为要看此文件在项目中位置而烦心,因为在某人的情况下,项目窗口中是显示3列,分别是文件路径、大小、修改日期,要是文件路径过长的话,每次还要调整列的宽度,很费时(如下图)。 步骤一:右击项目窗口,显示如下,选择下图中的选项“项目窗口属性”。 步骤二:在“项目窗口属性”中取消掉“文件大小”和“文件日期” 步骤三:
2017-08-30 17:02:54 5180
转载 /etc路径下有些什么?
/etc 杂七杂八的配置文件etc不是什么缩写,是and so on(等等)的意思来源于法语的 et cetera 翻译成中文就是等等的意思.至于为什么在/etc下面存放配置文件,按照原始的UNIX的说法(Linux文件结构参考UNIX的教学实现MINIX)这下面放的都是一堆零零碎碎的东西,就叫etc,这其实是个历史遗留.这个是来源于拉丁语全称etcetera.
2017-08-30 15:14:33 1463
原创 CSDN如何转载别人的文章
如何转载别人的文章1:右键查看源码 2:复制内容 开始复制位置,Ctrl+F查找关键字article_content divid="article_content"class="article_contenttracking-ad"data-mod=popu_307 data-dsm = "post" > 结束复制位
2017-08-30 14:50:06 203
原创 /proc路径下有些什么?
/proc 文件系统下的多种文件提供的系统信息不是针对某个特定进程的, 而是能够在整个系统范围的上下文 中使用。可以使用的文件随系统配置的变化而变化。命令procinfo 能够显示基于其中某些文件的多种系统 信息。 以下详细描述/proc 下的文件: /proc/cmdline 文件 这个文件给出了内核启动的命令行。它和用于进程的cmdline 项非常相似。
2017-08-30 14:21:00 2869
原创 宏BITS_TO_LONGS (数组位图操作) 代码测试
#include #include #include #define BITS_PER_LONG 32#define BITS_PER_BYTE 8 #define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long))//nr个位需要多少个long型数据变量来存储#define DI
2017-08-29 17:12:26 420
原创 操作帧缓冲:测试程序 struct fb_var_screeninfo struct fb_fix_screeninfo fix
帧缓冲驱动-应用层#include#include#include//堆空间#man calloc#include#include#include#include//mmap()函数 /*测试:可以在开发板上测试,也可以在pc上测试*pc上测试要注意先进入真实终端模式,通过ctrl+alt+f1~f6可
2017-08-28 23:08:42 2118
转载 输入设备--宏BITS_TO_LONGS (数组位图操作) —内核源文件input.h分析
struct input_dev { const char *name; //输入设备名 const char *phys; const char *uniq; struct input_id id; unsigned long evbit[BITS_TO_LONGS(EV_CNT)]; /*个数组代表input设备所支持的事件,使用位图的方法来表示。什么是位图,就是使用某
2017-08-28 17:04:31 613
原创 输入设备框架—驱动层—完整的代码工程
输入设备驱动/***********所有的函数结构体定义都在linux/input.h*****************/转载请标明出处,原文地址#include #include #include #include #include #include #include #include /*测试,可以将开发板上的系统的当前终端重定向为标准输入以测试*输入命令 #e
2017-08-27 18:35:48 408
原创 输入设备框架1—应用层—完整的代码工程
输入设备框架应用层输入设备框架的头文件在#vi /usr/include/linux/input.h type:是事件类型,都在这个头文件里有描述如EV_KEY按键事件类型type:设备类型。可以设置为:#defineEV_SYN 0x00 表示设备支持所有的事件#defineEV_KEY
2017-08-26 21:15:42 1096
转载 fopen、open和popen区别
open:直接操作物理设备,比如磁盘、设备文件 一般设备/设备文件都通过open来操作 fopen:则通过缓冲区来操作(所以不能用在驱动里),读写都在缓冲区上 ,一般用来操作普通文件filepopen:会调用fork()产生子进程,然后从子进程中调用/bin/sh -c来执行参数command的指令 依照popen参数中的type值建立管道连接到子进程的输入/输出设备中,
2017-08-26 11:49:44 2893
原创 字符设备驱动框架3:深入探讨—完整的驱动代码工程
misc混杂设备驱动框架是对cdev驱动的进一步封装,用的更方便/*****************cdev.h********************/struct cdev { struct kobject kobj; struct module *owner; const struct file_operations *ops; struct list_head list;
2017-08-26 10:11:27 222
转载 文件对比工具Beyond Compare使用方法(BCompare)
eyond Compare是一个很不错的文件/文件夹比较软件,第三版的Beyond Compare是在第二版之上的完全重构。类似从第一版到第二版的过渡,第三版重新考虑了用户界面,重新设计了内部基本结构并增加了显著的新功能。Beyond Compare 可以对文本、mp3、图片、数据、注册表等进行比较分析。对于程序员,你可以用它来对比两份代码的变化,甚至可以用它来比较文件版本和文件夹。在进行文件
2017-08-24 16:17:46 5626
原创 一步一步写Makefile(3):伪目标,静态规则,shell命令和去回显,嵌套执行Makefile
#################9:在Makefile中伪目标#################.PHONY:main 放这里和放下面效果完全不一样,放这里会产生main的可执行文件,不太清楚二者区别main:main.o test1.o test2.o.PHONY:mainmain.o:test1.h.PHONY:cleanclean: rm *.o main #在M
2017-08-24 15:23:56 369
转载 CSDN代码粘贴技巧
#include#include "test1.h"#include "test1.h" //多次包含也不会出错int test2(void);int main(void){ printf("main.c\n"); test1(); test2();}
2017-08-24 10:35:55 3912
原创 一步一步写Makefile(2):shell命令,通配符*和%区别,文件路径搜索vpath VPATH
#################6:Makefile中也可以插入shell命令################variable=main.o test1.o test2.omain:$(variable) cc -omain $(variable)main.o:test1.o test2.o test1.h clean: rm *.omai
2017-08-24 10:26:02 1355
原创 一步一步写Makefile(1):概念,变量,自动推导,Makefile相互引用
一步一步写Makefile概念: Make命令执行时是一步一步去解析Makefile文件内容1. 每一个源文件都对应一个.o中间文件2. 链接时就是链接这些中间文件里的全局变量和函数,如extern变量,包含了别的源文件里的函数声明并且用了这个函数,链接时就要去找这个函数的实现了3. 中间文件.o太多,于是就有了库.a文件了,他是多个.o文件的打包,这样就不用指明很
2017-08-23 15:43:33 389
原创 内核时钟操作
内核时钟操作Include/linuc/clk.h分析首先打开sourceinsight内核工程,搜索clk.h,这个文件里的函数都是与平台无关,他们的实现都是不同的平台有不同的实现方法。 /** *clk_get - lookup and obtain a reference to a clock producer. *@dev: device for cloc
2017-08-23 10:55:20 478
原创 The configuration file "vmname.vmx" was created by a VMware product that is incompatible with this v
VMWare低版本无法打开高版本创建的虚拟机解决方案我使用version 8的虚拟机打开 version 10的创建的虚拟机系统抛出错误信息:The configuration file "vmname.vmx" was created by a VMware productthat is incompatible with this version of VMware Works
2017-08-23 10:40:31 1621
转载 c语言中typeof关键字
c语言中typeof关键字下面这两个等效声明,用于声明int类弄的变量atypeof(int) a;typeof('b') a; //相当于获取'b'的类型,定义一个变量a下面用于声明指针和数组typeof(int*) p1,p2;typeof(p1) p2 //p1与p2的类型一致int *p1,*p2;typeof(int [10]) a1,a2;
2017-08-23 09:21:20 24316
原创 (void) (&_x == &_y)
#include #include #define min(x, y) ({ \ typeof(x) _x = (x); \ typeof(y) _y = (y); \ (void) (&_x == &_y); \ _x < _y ? _x : _y; })int main(void) { int x = 2; int y
2017-08-23 08:59:17 536
转载 英语偏旁部首
请大家想一想,英语是谁发明的?英国人呗!英国人认不认识汉语?不认识!那么英国人在学英语单词的时候需不需要记住单词的汉语意思?不需要,英国人的英语课本里根本就没有汉字,何谈记住单词的汉语意思?那么既然英国人学英语不需要记住(甚至根本就见不到)单词的汉语意思,那么中国人学英语为什么要去记住单词的汉语意思呢?这种做法大家不觉得奇怪吗? 然而由于中国人学英语时都在背单词的汉语意思,因此大家反而觉不出
2017-08-22 16:49:44 1051
原创 三种简单排序
/*冒泡排序: 冒泡排序每一次冒泡循环要选出一个最小数,如有8个数,外层循环要循环7次(0-6),内层循环要循环要循环7-i次*/#include #include void sort(int input[] , int n ){ int i=0,j=0,temp; for(i = 0 ; i < n - 1 ; ++i) //冒泡排序(降序) {
2017-08-22 14:33:06 224
原创 平台设备和驱动是怎么匹配的?
平台设备和驱动是怎么匹配的?在Linux源码的sourceindight工程下搜索platform_device.h,这个文件是设备结构体,驱动结构体的定义,还有操作这两个结构体的函数如:平台设备注册,平台驱动注册。先看两个结构体://平台设备struct platform_device { constchar * name; //设备名,可以用来
2017-08-22 10:38:21 2307
转载 Linux 驱动面试题总结
本文转载自:http://zkread.com/article/872291.html1、 Linux设备中字符设备与块设备有什么主要的区别?请分别列举一些实际的设备说出它们是属于哪一类设备。 字符设备:字符设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性。字符设备驱动程序通常至少实现open,close,read和write系统调用。字符终端、串口
2017-08-21 15:05:55 497
转载 platform总线所有函数解析
platform总线是一种虚拟的总线,相应的设备则为platform_device,而驱动则为platform_driver。Linux 2.6的设备驱动模型中,把I2C、RTC、LCD等都归纳为platform_device。总线将设备和驱动绑定,在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。Linux2
2017-08-21 09:50:05 495
原创 ioctl
如何用Linux内核里的操作函数集file_operation里ioctl函数编写 步骤一:打开linux内核源代码里的Documentation文件夹下的ioctl文档 文档里介绍了要用到的头文件和ioctl函数介绍,步骤二:打开文档ioctl-decoding,可知要包含头文件defined i
2017-08-20 19:44:53 421
原创 LINUX驱动小知识
1:主次设备号 主次设备号就类似于身份证的号码,前几位代表身份,后面代表生日等。主设备号代表一类设备,此设备号是有多少个设备,主次设备号合为一个设备号。2:__user的用处:提示这个参数是应用层的 如:struct file_operations { struct module *owner; loff_t (*ll
2017-08-20 17:38:42 172
转载 DSP关键字const,cregister,far,interrupt
DSP编程技巧之***系列文章:https://wenku.baidu.com/view/dc7a0a36804d2b160b4ec0b9.html DSP关键字什么是“关键字”?关键字就是已被C语言本身使用,不能作其它用途使用的字,例如关键字不能用作变量名、函数名等。那“关键字”到底有多关键?简单得说,就是如果不掌握它们的使用方法,程序就不能按照我们的设计产生预期的结果。C28
2017-08-18 16:05:56 4190
原创 DSP中断PIE控制器
PIE把96个中断分成12组INT1~INT12,每组管理8个中断INT*.1~NT*.8,这8个中断共用CPU中断INT1~INT12,每组都可打开或不打开这组的中断:PIEACKx。分析:如首先需要打开第一组INT1的第1个中断INT1.1对应外设中断使能寄存器,当第一组INT1的第1个中断INT1.1外设产生中断后,首先将标志位PIEIFR1置位,然后检查中断是否打开PIEIER1,再检
2017-08-18 15:48:56 3378
原创 DSP关键字cregister (关于IER,IFR找不到定义)
DSP关键字cregister (关于IER,IFR找不到定义)在DSP2833X_Device.h文件里有两个变量IER,IFR,只有声明却没有找到定义extern cregister volatile unsignedint IFR;extern cregister volatile unsignedint IER;打开spru514d(TMS320C28x Optimizin
2017-08-18 15:45:08 9191
原创 万能参数void*
/*可以把void*理解成一个泛型如C#中的object,当你传参的时候,先转化为泛型, 在用的时候你就把它转化为你想要的类型,但是也有限制:那就是只能在指针之间转化 ,不能在指针和非指针之间进行转化*/#include void Number(void* param){ //int num; //num = (int)param; //error: cast
2017-08-18 09:43:44 5147
原创 Linux内核中断:request_irq,free_irq
Linux内核中断 步骤一:打开内核源代码,在里面搜索interrupt.h文件 打开文件后我们可以在里面看到这样的函数typedef irqreturn_t (*irq_handler_t)(int,void *);申请中断号request_irq(unsigned int irq, irq_hand
2017-08-17 21:55:40 2535
转载 常用数字电路逻辑符号
标签:逻辑门 符号 逻辑门符号《逻辑门电路符号图》逻辑门电路符号图包括与门,或门,非门,同或门,异或门,还有这些门电路的逻辑表达式,1.与逻辑(1)与逻辑:当决定某一事件的所有条件都具备时,该事件才会发生。(2)真值表:符号0和1分别表示低电平和高电平,将输入变量可能的取值组合状态及其对应的输出状态列成的表格。表11.2 与门真值表A
2017-08-17 17:03:21 40725
原创 Linux内核定时器
Linux内核定时器打开内核sourceinsight工程,搜索timer.h,打开include/linux/time.h目录下的文件,ps:linux的头文件都是在某个include文件夹下,而Linux/include目录下的头文件是用的最多的头文件,它一般是通用的头文件和硬件平台无关,而我们用的时候也是一般用这个目录下的头文件。 打开头文件struct timer_list
2017-08-17 09:22:29 267
原创 编写LED驱动:如何用Linux内核里静态映射好的GPIO
编写LED驱动:如何用Linux内核里静态映射好的GPIO 步骤一:打开内核源代码,在里面搜索regs-gpio.h文件 打开文件后我们可以在里面看到这样的宏VA:表示虚拟地址的缩写我们找到虚拟地址的定义PA:表示物理地址再找物理地址的定义还有诸如GPIOA,GP
2017-08-16 22:25:52 532
Oracle goldengate 从入门到精通 15课.rar
2021-07-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人