- 博客(54)
- 资源 (13)
- 收藏
- 关注
转载 数组名和数组名取地址&
在C中, 在几乎所有使用数组的表达式中,数组名的值是个指针常量,也就是数组第一个元素的地址。 它的类型取决于数组元素的类型: 如果它们是int类型,那么数组名的类型就是“指向int的常量指针“。 在以下两种场合下,数组名并不是用指针常量来表示,就是当数组名作为sizeof操作符和单目操作符&的操作数时。 sizeof返回整个数组的长度,而不是指向数组的指针的长度。 取一
2015-10-03 19:11:46 781
转载 LINUX下GDB调试
调用gdb编译需要在cc后面加 -g参数再加-o;[root@redhat home]#gdb 调试文件:启动gdb(gdb) l :(字母l)从第一行开始列出源码(gdb) break n :在第n行处设置断点(gdb) break func:在函数func()的入口处设置断点(gdb) info break: 查看断点信息(gdb) r:运行程序
2015-10-01 11:18:42 660
原创 双向链表简单实现
/********************************************************************************* * Copyright: (C) 2015 songyong * All rights reserved. * * Filename: double_link.c
2015-09-20 21:08:23 590
原创 字符串反转,判断回文字符串,atoi,strlen
字符串反转my_strRev.c:/********************************************************************************* * Copyright: (C) 2015 songyong * All rights reserved. * * Filenam
2015-09-18 16:33:45 865
原创 strcpy、strncpy代码实现。
要求:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。/********************************************************************************* * Copyright: (C) 2015 songyong * All right
2015-09-17 17:38:19 1312
原创 单向链表简单实现
/********************************************************************************* * Copyright: (C) 2015 songyong * All rights reserved. * * Filename: link.c * De
2015-09-13 19:30:55 480
原创 sizeof
/********************************************************************************* * Copyright: (C) 2015 songyong * All rights reserved. * * Filename: array.c * D
2015-09-11 14:37:36 495
转载 用C语言实现常用排序算法
比如希尔排序是对插入算法的改进,快速排序是对冒泡排序的改进,快速排序和归并排序都用递归实现。插入排序算法概要:插入排序依据遍历到第N个元素的时候前面的N-1个元素已经是排序好的,那么就查找前面的N-1个元素把这第N个元素放在合适的位置,如此下去直到遍历完序列的元素为止。void insertSort(int array[], int length) { in
2015-09-10 21:50:38 537
转载 get_optlong用法(linux解析命令行参数)
getopt_long支持长选项的命令行解析,使用man getopt_long,得到其声明如下:#include int getopt_long(int argc, char * const argv[], const char *optstring,const struct option *longopts, int *longindex);int geto
2015-09-04 23:09:10 2479
原创 S3C2440 温度传感器ds18b20的驱动编写与测试
ds18b20的详细信息百度百科都有比较详细的介绍:http://www.baidu.com/link?url=tgDW0RZumyv2JQbC7ohrnKj_jtFZmqkrnJd7vp3V24KCiG8bkOHqD7vRoQev3OjBPFgIGUvUyVpfdtgSzJUwm_&wd=&eqid=cb79eb5b0000da5a0000000555e061f4再有就是特别感谢这位提供da
2015-08-28 21:30:43 4243 1
转载 Linux中的延时函数
应用层: #include 1、unsigned int sleep(unsigned int seconds); 秒级 2、int usleep(useconds_t usec); 微秒级:1/10^-6 #define _POSIX_C_SOURCE 199309 #include 3、int
2015-08-28 18:40:24 637
原创 S3C2440 GPS全球导航模块SF2820实现
好久没这么写代码了,总算了做完了。特么的一想到自己昨天把代码误删了就还是会很懵逼.....下面说说这个小项目。刚拿到GPS模块的时候开始查资料,发现代码好多啊,好多东西。确实,陌生的东西比较多。但是无非就是1.串口编程的首要条件:通过编程配置好串口状态。2.获取GPS数据之后怎么用以及都有什么用。现在的我们都是站在巨人的肩膀上前进啊,在这互联时代,上网随手一查就是一堆攻略,稍加修改就好
2015-08-12 10:24:57 1289
原创 ssh Git@OSC创建远程库进行代码托管备份。
刚吃完饭,我赶紧喝几口可乐杀杀精,为了过两天的开房做好准备,以防天赐。对,我就是要任性的把这个谣言当作自己真的信仰~哈哈好了,玩笑开过了,来谈点严肃的事情。今天下午我写完程序后便开始写Makefile,刚刚写Makefile的时候我就有在想,如果迷糊的写完Makefile,万一make clean的时候把.c也删除了那就好玩了。蛤蛤~是的,刚刚说完我就真的把自己在.c中敲的代码全部make
2015-08-10 19:30:07 935
转载 linux 信号signal和sigaction理解
这两天重看APUE看到信号,又记起来了kill并不是直接终止进程的命令,而是发信号的命令,通过发信号来控制进程状态。[pikaqiu@centos6 ~]$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS
2015-08-09 14:32:52 2602
原创 FL2440 3G上网卡拨号上网,并实现mdev自动挂载
___________________________________主机操作系统:Centos 6.5交叉编译器环境:arm-linux-gcc-4.5.4开发板平台: FL2440 Linux内核版本: 3.0作者:songyong___________________________________一、配置内核支持3G驱动以及PPP协议打
2015-08-03 14:18:07 1603 2
原创 S3C2440 RT3070实现无线路由器 基于wpa_suppicant+udhcpc实现STA,hostapd+udhcpd+iptables实现softAP
无线网卡RT3070模块,实现开发板无线上网以及路由器功能_________________________________主机操作系统:Centos 6.5交叉编译器环境:arm-linux-gcc-4.5.4开发板平台: FL2440 Linux内核版本: 3.0作者:songyong<handy_skyoutlook.com>_________________________________RT3070的工作模式分为 STA(station)模式、SoftAP(Acces
2015-07-31 10:18:17 5164 1
转载 shell常用的 if语句【-x file】
[ -a FILE ] 如果 FILE 存在则为真。[ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。[ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。[ -d FILE ] 如果 FILE 存在且是一个目录则为真。[ -e FILE ] 如果 FILE 存在则为真。[ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。
2015-07-27 18:53:12 1145
原创 S3C2440 Linux下的I2C驱动以及I2C体系下对EEPROM进行读写操作。
这篇文档算上期末复习这段时间其实拖了有好久了,因为从一开始接触linux的i2c驱动体系我就各种凌乱,经常性的在看内核代码时看着看着就把自己看飞了。结果就是无功而返,还使自己挫败感爆表,丧失信心。所以我决定当前阶段把结构体熟悉,知道大致的驱动体系框架。日后真正做到此类项目时再来深入理解,总结。
2015-07-08 19:54:02 4846
原创 Cool Edit Pro 中把歌曲的原唱声消除掉制作伴奏带
一个手游的朋友在外面吃饭的时候为了把妹答应了人家一个事儿,然后我千里给人家送姻缘,做好了图片教程发他现场学。。这个也是网上的教程,很没技术含量,但网上多为文字,既然我做好了图片教程,我还是发上来记录一下1. 下载好后首先找到coolpro2.exe2. 右键 -> 以管理员身份运行(为了避免你的系统不兼容问题:”未定义出错!")3.按图片上的步骤进行:3.最简单
2015-06-05 22:29:37 8146 1
原创 s3c2440 linux3.0下PWM使用之蜂鸣器驱动移植
这篇文档拖了好久了,都有点淡忘了。这段时间考试加实验太忙了,但还是先粗略的记录,总结下吧。先贴上修改过的地方。文件:mach-smdk2440.c+#include //add by handy 5.20+/* beeper add by Handy 2015.5.20 */+static struct platform_device smdk2440_beeper_dev
2015-05-26 20:58:09 2420
原创 s3c2440 LCD驱动,USB驱动,触摸屏以及ADC驱动移植
这篇驱动移植文章,目的是实现相应的功能,并分享我在做移植过程中所碰到的一些问题及解决的方法。贴上代码:--- mach-smdk2440_o.c 2015-04-24 11:39:20.492017397 +0800+++ mach-smdk2440.c 2015-05-17 16:27:25.250018401 +0800@@ -46,6 +46,33 @@ #include
2015-05-17 16:58:09 2398
转载 关于mount指令.以及解决Read-only file system的指令
mount格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有: -a 安装在/etc/fstab文件中类出的所有文件系统。-f 伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系统。-n 不把安装记录在/etc/mtab 文件中。-r 讲文件系统安装为只读。-v 详细显示安装信息。
2015-04-28 19:51:18 36184
原创 s3c2440 DM9000网卡移植,RTC时钟使能
--- mach-smdk2440_o.c 2015-04-24 11:39:20.492017397 +0800+++ mach-smdk2440.c 2015-04-24 12:24:04.000000000 +0800@@ -22,6 +22,7 @@ #include #include #include +#include #include #inc
2015-04-25 16:12:08 1457
原创 s3c2440 UDA1341声卡驱动与madplay播放器移植,
本文允许转载,但请注明出处:http://blog.csdn.net/u010944778/article/details/452463071.配置声卡UDA1341驱动/* 首先通过s3c2440原理图确认管脚。*/
2015-04-24 14:40:21 3119 1
原创 Linux button按键驱动 多次中断控制相应LED灯亮灭闪
下午的时候完成了按键驱动的测试程序,接下来贴上新鲜出炉的按键控制相应LED灯亮灭闪的程序。/********************************************************************************* * Copyright: (C) 2015 songyong * All righ
2015-04-18 19:42:32 2444
原创 Linux设备驱动之button按键驱动学习与小结
button按键驱动,相对于前面的LED驱动来说。增加了中断服务程序以及等待队列等新知识点。先上学习的驱动代码。/********************************************************************************* * Copyright: (C) 2011 Guo Wenxue *
2015-04-18 15:29:00 7645
原创 Linux驱动程序中的file,inode,file_operations三大结构体
file_operations: 该结构是将 系统调用 和驱动程序连接起来,这个结构的每一成员都对应着一个系统调用。当用户进程利用系统调用对设备进行读写操作的时候,这些系统调用通过设备节点中的主设备号和次设备号来确定相应的驱动程序,而每一个字符驱动在linux内核中又是由cdev结构体来描述的,其中cdev结构体中含有成员fops结构体,然后就可以读取file_operation
2015-04-16 16:56:02 10105
原创 Linux内核中的常用宏container_of其实很简单
在学习驱动的过程中遇到了container_of这个宏,想深入知道下他的具体实现。 此博文转载自:http://blog.csdn.net/npy_lp/article/details/7010752开发平台:Ubuntu11.04 编 译器:gcc version 4.5.2 (Ubuntu/Linaro4.5.2-8ubuntu4)
2015-04-16 16:34:38 565
原创 Linux Platform设备驱动学习与小结
Platform 设备先被注册然后platfrom驱动加载时会调用驱动程序中的probe()入口函数,扫描系统中已注册的设备,通过。Name域找到匹配设备后将驱动和设备绑定。一个驱动可以对应多个设备,但是一个设备只对一个驱动。Linux下的虚拟总线platform对应设备platform_device,对应的驱动为platform_driver。一个很不恰当的例子:设备好比男人,驱动好比女人,pl
2015-04-06 19:23:11 1789
原创 LED驱动测试程序以及静态加载驱动过程
前两天写好的LED驱动测试程序。原意是1亮,灭;2亮,灭。可没实现目标,以后需要再来更改吧。/********************************************************************************* * Copyright: (C) 2015 songyong *
2015-04-04 22:45:43 1652
原创 初识Linux设备驱动之字符设备
理论基础上我们首先要知道Linux系统将设备分为三类: 字符设备,块设备,网络设备。//这篇日志说的是字符设备驱动简单介绍。 块设备与字符设备粗略的区别在于 : 符设备是只能一个字节一个字节读写,不能随机读取设备内存中的某一数据。常见的有 鼠标,键盘,串口,控制台以及LED设备等。而块设备则能一次读写许多个字节,可以从设备的任意位置读取一定长度数据的设备。
2015-04-03 22:25:47 535
原创 linux开发中的Segmentation fault的解析
友情转载链接: http://blog.chinaunix.net/uid-23069658-id-3959636.html
2015-01-08 19:32:01 612
原创 APUE之通过popen,snprintf,fputc等函数获取网卡eth0的IP
任务:unix环境通过c程序获取本虚拟机网卡eth0的IP.总结:1. 标准I/O库函数相对于系统调用的函数多了个缓冲区(,buf),安全性上通过buf 防溢出。2.用system函数输出是标准输出,进一步理解fork函数和exec函数重新开启一个进程运行程序;3.printf 这类输出函数中“ ”若包含“记得要换成转义字符\" 资料链接: htt
2014-12-26 21:09:19 707
原创 APUE之标准I/O fopen,freopen,fread,fwrite实例。
表头文件 #includefread 函数原型size_t fread( void * ptr,size_t size,size_t nmemb,FILE * stream);fwrite 函数原型size_t fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream);一般调用形式fre
2014-12-26 09:15:55 655
原创 APUE之dup,dup2函数重定向标准输出实例
定义这两个函数的头文件是 unistd.h 这个头文件同时定义了下面三个常量:* STDIN_FILENO= 0 标准输入* STDOUT_FILENO= 1 标准输出* STDERR_FILENO = 2 标准出错输出dup和dup2函数#include int dup (int filedes);int dup2 ( int filedes,in
2014-12-25 14:51:49 800
原创 判断小端字节序和大端字节序的C程序
编写一个C程序,实现32位CPU中存储方式小端字节序和大端字节序的判别。ONE:#include#define LBS 0#define MBS 1{ int main(int){ int a=0x12345678; char *p; p = (char *)&a; if(p = 0x12) { return MBS; } /* if( p = 0x78)
2014-12-21 22:44:39 3626 2
原创 APUE之open,read,write,close函数应用,制作基本的makefile。
条件:将文件A中的内容写入文件B中。其中需要判断文件A,B是否存在。若B存在则删除以前内容,再将A中内容写入。dd.c/********************************************************************************* * Copyright: (C) 2014 songyong *
2014-12-19 22:09:34 601
原创 Linux内核3.0移植并基于Initramfs根文件系统启动
Linux内核移植与启动Target borad:FL2440Bootloader:U-boot-2010.09交叉编译器:buildroot-2012.081.linux内核基础知识首先,磨刀不误砍柴工。在动手进行linux内核移植之前,我们有必要对linux内核进行一定的了解。1.1 Linux内核启动过程概述一个嵌入式Linux系统
2014-12-18 16:24:08 2834
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人