- 博客(47)
- 资源 (4)
- 收藏
- 关注
转载 堆,栈,代码段,数据段,BSS 段概念解析
程序的内存分配1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。后进先出2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。顺序随意3、全局区(静态区)(static)— 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态
2012-12-15 21:00:23 884 1
转载 LINUX系统中动态链接库的创建与使用
LINUX系统中动态链接库的创建与使用 大家都知道,在WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library)。这种动态链接库,和静态函数库不同,它里面的函数并不是执行程序本身的一部分,而是根据执行程序需要按需装入,同时其执行代码可在多个执行程序间共享,节省了空间,提高了效率,具备很高的灵活性,得到越来越多
2012-07-12 20:48:44 647
转载 MakeFile用法,详细到让人吐
0 Makefile概述 -------------------------------------------------------------------------------- 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要
2012-07-12 20:42:29 911
转载 关于ARM开发板通过有线接入互联网自动获取IP地址问题
参考网页,以备后用:http://blog.163.com/ljf_gzhu/blog/static/131553440201051710237619/1. 配置内核:[*] Networking support ---> Networking options ---> Packet socket Unix domain sockets [*]
2012-07-12 20:39:05 1211
转载 Linux 下摄像头视频采集与显示
说明:1、本文所提及的摄像头不是zc0301p,使用的API不是V4L,显示所使用的上位机不是QT,特此说明。2、UVC只是一个驱动,如果它能成功驱动摄像头,会在/dev目录下出现video(或video0、video1等等)。这样,就可以使用Linux提供(准确说不是Linux提供,具体的百度吧)的一套API,即V4L2来访问摄像头了。“使用”是指我们写的采集数据的程序,而不是指“摄像头
2012-07-12 20:29:31 3518 1
转载 基于Video4Linux 的USB 摄像头图像采集实现
基于Video4Linux 的USB 摄像头图像采集实现分类: Linux 2012-03-10 20:35 698人阅读 评论(0) 收藏 举报最近一直在做一个摄像头视频采集的程序,遇到了很多艰辛的问题,下边这是一个好文章,粘过来供大家也供自己能对添加驱动以及摄像头视频采集 程序的书写有一定的帮助,同时谢谢博主能提供这样一份很好的文章。做了一段时间的摄像头图像采集
2012-07-12 20:23:01 1188
转载 Qt Creator 之mplayer播放器图形界面设计
利用mplayer为播放核心,编写自己的播放器界面(1)前几天学习了mplayer的编译、初步使用和方法学习有需要的可以看我发过的子~xphyym这个礼拜写了个播放器的界面,很粗糙!理想界面为暴风影音那样~~一个人的力量很有局限~~欢迎大家共同讨论研究,编一个我们自己的播放器~~附件为我打包的程
2012-07-12 18:59:20 2271 4
转载 Linux 系统中安装网卡驱动时出现"设备eth0似乎不存在"解决办法
下配置文件(/etc/sysconfig/network-scripts),配置也没错。可以证明根本就不在我想想的范围之内。我就先用“service network restart”重启网络服务,发现网卡起不来。如下图:看到这个之后,我本以为是我在配置IP是把那个步骤搞错了,我就又反复的把IP地址配了好几编,还是不行。我就纳闷啦,难道我连IP都不知道
2012-06-16 20:21:08 5330
原创 /usr/local/arm/4.4.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.3/../../../../arm-none-linux-gnueabi/
最近做囯嵌的MP3项目时,进行Madplay移植是遇到蛋痛的问题:前面所有的编译都通过,到静态链接编译Madplay时arm-linux-gcc -o mplayer mplayer.o m_property.o mp_fifo.o mp_msg.o mixer.o parser-mpcmd.o subopt-helper.o command.o asxparser.o codec-cfg
2012-06-02 10:51:26 5504 1
原创 error:undefined reference to `coloured_LED_init'
错误信息如下:cpu/arm920t/start.o: In function `start_code':/root/workspace/u-boot-2009.08/cpu/arm920t/start.S:117: undefined reference to `coloured_LED_init'/root/workspace/u-boot-2009.08/cpu/arm920t/
2012-05-30 21:31:12 1030 1
转载 inline函数和weak属性冲突
inline函数和weak属性冲突void inline __show_boot_progress (int val) {}void inline show_boot_progress (int val) __attribute__((weak, alias("__show_boot_progress")));编译提示错误:main.c:51: error: inl
2012-05-30 21:21:17 1679 4
原创 warning: target CPU does not support interworking
打印错误信息如下:warning: target CPU does not support interworking解决方法:错误与CPU有关gedit cpu/arm920t/config.mk把 PLATFORM_CPPFLAGS += -march=armv4 改成 PLATFORM_CPPFLAGS += -march=armv4t
2012-05-30 21:11:21 1117
原创 board.c:1: warning: target CPU does not support interworking
打印的错误信息如下:board.c:1: warning: target CPU does not support interworkingboard.c:125: error: inline function 'coloured_LED_init' cannot be declared weakboard.c:127: error: inline function 'red_LED_
2012-05-30 21:07:36 747
原创 关于错误IOError:<urlopen error (-3, 'Temporary failure in name resolution')>的解决
fedora安装Tftp时出错:网上对此问题解决方法很多,但都没有解决此问题,最终还是从鸟哥的书上找到答案。错误信息如下:[root@tom ~]# yum install xinetd tftp tftp-serverLoaded plugins: refresh-packagekithttp://ftp-stud.hs-esslingen.de/pub/Mirrors/arch
2012-05-27 10:48:30 5061 1
转载 ioremap
ioremap Linux在头文件include/linux/ioport.h中定义了三个对I/O内存资源进行操作的宏:(1)request_mem_region()宏,请求分配指定的I/O内存资源。(2)check_mem_region()宏,检查指定的I/O内存资源是否已被占用。(3)release_mem_region()宏,释放指定的I/O内存资源。 这三
2012-05-17 20:42:33 2576
转载 usb鼠标驱动注解及测试
参考2.6.14版本中的driver/usb/input/usbmouse.c。鼠标驱动可分为几个部分:驱动加载部分、probe部分、open部分、urb回调函数处理部分。 下文阴影部分为注解。一、驱动加载部分static int __init usb_mouse_init(void) { int retval = usb_r
2012-05-16 21:20:37 724
转载 struct input_event
查看/dev/input/eventX是什么类型的事件, cat /proc/bus/input/devices设备有着自己特殊的按键键码,我需要将一些标准的按键,比如0-9,X-Z等模拟成标准按键,比如KEY_0,KEY-Z等,所以需要用到按键模拟,具体 方法就是操作/dev/input/event1文件,向它写入个input_event结构体就可以模拟按键的输入了。linux/
2012-05-16 20:45:21 435
转载 Linux输入子系统
Linux输入子系统(Input Subsystem)1.1.input子系统概述输入设备(如按键,键盘,触摸屏,鼠标等)是典型的字符设备,其一般的工作机制是低层在按键,触摸等动作发生时产生一个中断(或驱动通过timer定时查询),然后cpu通过SPI,I2C或者外部存储器总线读取键值,坐标等数据,放一个缓冲区,字符设备驱动管理该缓冲区,
2012-05-16 19:05:21 486
转载 MAC地址 的意义及作用
什么是 MAC Address MAC地址就是在媒体接入层上使用的地址,也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。MAC地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,都有相同的MAC地址,它由厂商写在网卡的BIOS里。MAC地址可采用6字节(48比特)或2字节(16比特)这两种中的任意一种。但随着局域网规模越来越
2012-05-16 17:07:53 7077
转载 TCP循环服务器 UDP循环服务器 TCP并发服务器
1.编写使用TCP协议的服务器程序2.编写使用TCP协议的客户端程序3.客户端向服务器发送字符串,服务器打印收到的字符串服务器hw1server.c#include #include #include #include #include #include #include #include #define portnum 3456
2012-05-12 20:03:36 1094
转载 linux下:inet_ntoa()
函数简介 linux下: 函数声明:char *inet_ntoa (struct in_addr); 返回点分十进制的字符串在静态内存中的指针。 所在头文件: //end linux 下 函数功能:将网络地址转换成“.”点隔的字符串格式。 所需库: winsock.h 也可以使用:
2012-05-12 19:27:25 10893 1
转载 Linux下bzero函数
原型:extern void bzero(void *s, int n); 用法:#include 功能:置字节字符串s的前n个字节为零。 说明:bzero无返回值。 举例: // bzero.c #include #include main() { struct { int a; char s[5];
2012-05-12 18:42:54 5929
转载 守护进程(daemon)
守护进程简介 守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。Linux系统有很多守护进程,大多数服务都是通过守护进程实现的,同时,守护进程还能完成许多系统任务,例如,作业规划进程crond、打印进程lqd等(这里的结尾字母
2012-05-12 15:49:40 581
原创 多线程编程学习笔记
一.什么是线程在一个程序里的多个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的一个控制序列”。典型的unix进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各只独立的任务。 二.线程的优点(1) 通过为每种事件类型的处理分配单独的线程,能够简化处理异步
2012-05-10 21:27:24 346
转载 线程各类编程
1线程创建函数原型: #include int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict attr, void *(*start_rtn)(void),void *restrict arg);返回值:若是成功建立线程返回0,否则返回错误的编号形式参数:pthrea
2012-05-10 21:24:08 415
原创 thread_join.c:(.text+0x6f): undefined reference to `pthread_create' 问题的解决
今天在测试一个线程例子时,结果出现如下错误[root@tom fzf]# gcc thread_join.c -o thread_join/tmp/cc1HozRv.o: In function `main':thread_join.c:(.text+0x6f): undefined reference to `pthread_create'thread_join.c:(.te
2012-05-10 20:04:30 3556 1
转载 文件句柄
最近在学字符设备驱动程序的时候遇到了一个概念:文件句柄于是找了一些相关的资料加以理解:简介 在文件I/O中,要从一个文件读取数据,应用程序首先要调用操作系统函数并传送文件名,并选一个到该文件的路径来打开文件。该函数取回一个顺序号,即文件句柄(file handle),该文件句柄对于打开的文件是唯一的识别依据。要从文件中读取一块数据,应用程序需要调用函数Read
2012-04-18 18:59:41 1832
转载 Qt移植(Qtopia4.2.2)
九、Qt移植(Qtopia4.2.2)(转载文章)1 Qt 和 Qtopia 简介 (自己的理解,不对之处还请见谅) Qt特点是“一次编写,处处编译”。Qt是在PC机上安装安装使用的;Qtopia Core 是基于嵌入式Linux的面向单一应用的嵌入式产品开发平台,即要移植到开发板上使用的;Qt/E是面向嵌入式系统的Qt版本,而Qtopia最初是构建于Qt/E之上的类似桌面
2012-04-11 19:43:00 996
原创 ADC 驱动移植
(1)Linux-2.6.32.2 内核并没有提供支持S3C2440 的ADC 驱动程序,所以需要在drivers/char 目录下,创建一个驱动程序的文件名为:mini2440_adc.c(囯嵌提供)在 S3C2440 芯片中,AD 输入和触摸屏接口使用共同的A/D 转换器ADC 驱动和触摸屏驱动若想共存,就必须解决共享“A/D 转换器”资源这个问题,因此在ADC 驱动程序中声明
2012-04-10 11:15:26 765
转载 嵌入式笔试杂七杂八
(1)c语言问题,union和struct 的区别?共享一个存储单元和按定义分配存储单元。(2)sizeof(一大堆变量),如果用这个函数分配内存的大小一定与定义相同吗?答曰:想不相同不清楚,但是肯定的是指回答不会小,因为使用sizeof分配内存不会错。(3)解释什么是优先级反转。答曰:多任务运行过程中,因为临界资源相互等待占用,导致高优先任务得不到满足,造成低优先级任务先执行
2012-04-09 20:47:01 1127 2
转载 嵌入式笔试试题1
1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有
2012-04-09 20:43:33 888
转载 嵌入式linux 面试题
1. linux内核里面,内存申请有哪几个函数,各自的区别?Kmalloc() __get_free_page() mempool_create() 2. IRQ和FIQ有什么区别,在CPU里面是是怎么做的? 3. int *a;char *b;a 和 b本身是什么类型?a、b里面本身存放的只是一个地址,难道是这两个地址有不同么?
2012-04-09 20:38:40 3179
转载 linux启动成功修改logo
1:获得.png图片,可以截图获得,千万注意图片不能大于lcd屏幕,最好小点,大了有时显示不了。我几次没有显示就是图片原因。2 使用Linux命令将图片转换为ppm图片:也可以使用logomaker或者linux系统下自带的JIMP编辑工具使用# pngtopnm logo_linux_clut224.png > logo_linux_clut224.pnm# pnmqua
2012-04-09 20:18:48 501
转载 Linux启动过程(从执行init到用户登录部分)
转载地址:http://www.cndw.com/tech/server/2006042152314.asp 本文以RedHat9.0和i386平台为例,剖析了从用户打开电源直到屏幕出现命令行提示符的整个Linux启动过程。并且介绍了启动中涉及到的各种文件。 阅读Linux源代码,无疑是深入学习Linux的最好方法。在本文对Linux启动过程的介绍中,我们也尝试从源代码的视角来更深入
2012-04-09 19:59:56 894
原创 linux下解压命令大全和 rpm命令使用简介
Linux下解压命令大全.tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar.gz 和 .tgz
2012-04-09 19:46:40 1896
原创 移植apache服务器
移植apache服务器由于移植过程中没有做相应记录,找了一篇相似的文章参考,做临时记录。相应文章参考http://wenku.baidu.com/view/5c70424ecf84b9d528ea7a6b.html?from=related&hasrec=1(1)先建立两个文件#mkdir /home/apache #mkdir /home/apache-arm
2012-04-09 19:02:06 879
原创 LCD 背光驱动移植
在 mini2440/micro2440 开发板中,LCD 背光是通过CPU 的LCD_PWR 引脚来控制的,从原理图中可以看出,它对应于GPG4,当LCD_PWR 输出为高电平“1”时,将打开背光;当输出为低电平“0”时,将关闭背光(注意:这里只是打开和关闭背光,而并没有背光亮度的调节作用)。移植过程中也遇到不少问题,最后还需要编写一个测试程序来打开背光驱动。废话少说,下面开
2012-04-09 18:01:44 643
原创 利用yum安装卸载软件常用命令
1.使用yum安装和卸载软件,有个前提是yum安装的软件包都是rpm格式的。 安装的命令是,yum install ~,yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断; 删除的命令是,yum remove ~,同安装一样,
2012-04-08 19:22:34 479
转载 Shell脚本编程基础
Shell简介Shell简单的说就是命令解析器,将用户输入的指令转换为相应的机器能够执行的程序。Shell脚本是一个包含一系列命令序列的文本文件(批处理)。当运行这个脚本文件时,文件中包含的命令序列将得到执行。HelloWorldShell脚本的第一行必须是如下格式: #!/bin/bash 符号#!用来指定该脚本文件的解析程序。例中使用bash,也可以使用其他shel
2012-04-07 14:45:10 381
原创 网卡(dm9000)驱动移植
网卡(dm9000)驱动移植看到网上有很多的博客分享,比如:http://blog.chinaunix.net/space.php?uid=13321460&do=blog&id=2902457http://blog.csdn.net/baozhongchao/article/details/4538182在此,描述一下自己的制作过程:1.修改arch/arm/pl
2012-04-07 14:24:29 639
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人