- 博客(40)
- 资源 (6)
- 收藏
- 关注
转载 位运算
1. 从布尔代数说起布尔代数定义了与、或、非等基本运算,是位运算的基础。但位运算要更加复杂,因为涉及到了多位运算,并且分为逻辑运算与算术运算。位运算可以简单地看做布尔代数中的逻辑运算。转载一段不错的对位运算与布尔代数关系的描述:“位运算是计算机最擅长的计算方式,尽管从广义上说,位运算仅仅是布尔代数中的一小部分,但是现实中,
2014-12-28 23:58:25
613
原创 malloc()和free()的原理
遇到一笔试题没看懂===============================================================================修改下面代码,使其正常运行void getmemory(char *p){ p = (char *)malloc(100); strcpy(p, "hello,world");}int m
2014-12-26 14:34:38
638
转载 MTD中的nand驱动初步分析
下面是Linux MTD中,获取nand flash型号,各个参数,以及硬件特性的函数,其实也就是nand_get_flash_type,下面对其详细解析: 【看此文之前,一些有必要先解释的术语】1. Program(编程):此处的编程,不是写软件,写代码,而是对于硬件来说的,可以理解为对硬件编程,只不过其工具是硬件内部的逻辑,而不是你用的软件。对Nan
2014-07-05 12:43:17
1083
转载 Cppcheck 1.54 C/C++静态代码分析工具
Cppcheck是一个C/C++代码分析工具,只检测那些编译器通常无法检测到的bug类型。 官方上建议让编译器提供尽量多的警告提示:1.使用Visual C++的话,应使用警告等级42.使用GCC的话,参看Warning options - using GCC 官方地址:http://cppcheck.sourceforge.net/当前版本:1.54 for wind
2014-07-01 16:49:21
1472
转载 uboot移植与源码分析总结(3)-Serial驱动分析
之前简单实现过s5pv210的串口驱动,能正常使用,不过只能支持一个串口。串口驱动的实现还是比较简单的。UBoot的Serial驱动主要功能有如下几点:输出各种调试信息、启动信息;提供命令交互接口;支持低速的文件传输;不过,现在新出的电脑很多都不再提供串口,所以需要自己配一个USB转RS232的转接线。质量建议选好的,相应的驱动也要装个稳定点的,否则一不小心电脑
2014-05-26 23:51:11
2076
原创 分析自己的linux启动代码
1,rcS#!/bin/sh## rcS Call all S??* scripts in /etc/rcS.d in# numerical/alphabetical order.## Version: @(#)/etc/init.d/rcS 2.76 19-Apr-1999 miquels@cistron.nl#PATH=/sbin:/bin:/usr/sbin:/
2014-05-15 10:26:50
652
转载 C函数解析MP3信息
/*这是修改后的代码,VC下读ID3v2 & ID3v1 , 读mp3_tagHeader都没问题.*//****************************************************************** File : mp3info.c ************************************
2014-05-12 21:46:12
1098
转载 linux 套接字结构
Linux:C/Socket多路复用select 小全Submitted byELFeron 2006, August 3, 5:46 PM.Unix/Linux作一个tcp的服务程序,同时可能有大量的客户端连上来,希望分别记住各个socket谁有数据过来,就读出来,放到一个请求队列--这些事情用一个线程完成另外有一个结果队列,如果结果里包含了socket的编号,用一个线程专门
2014-04-25 16:34:41
556
转载 S5PV210之UBOOT-2011.06启动过程解析-基于u-boot for tiny210 ver3.1 (by liukun321咕唧咕唧)
因为是采用的nand_spl方式从nand flash启动,将前面4K的镜像执行过程和后面252K大小的镜像执行过程做一个大概的描述性的分析,不想写的过于具体,因为知道过程后和必备的知识后,如果哪里出了问题,那时候也可以一句一句代码的查问题.前面4K代码在内部sram中执行的步骤是:1.设置cpu为svc模式2.关闭开门狗和中断3.初始化系统时钟4.禁用MM
2014-03-30 22:24:52
1005
原创 tiny210裸机第1课(启动原理)
软硬件环境宿主机系统:Fedora10U-boot版本:U-boot-2012-10 板子芯片:S5PV210(Contex-A8),512M DDR2,512M SLC Nand交叉编译器:arm-linux-gcc-4.5.1-v6-vfp-20120301(支持armv7指令系统)1.写在前面的话 Tiny210买回来好几个星
2014-03-12 15:34:22
2185
转载 list_head的用法总结
前言:写贪吃蛇C语音代码,大多用到双向链表做蛇的数据结构体。如下:点击(此处)折叠或打开typedef struct node /* Snake_node structure */ {int x_pos;int y_pos;struct node *prev;struct node *next;} Snake_Node;
2014-03-02 16:20:15
12523
转载 完全用链表实现的贪吃蛇
1.链表设计同事突然说想实现一个贪吃蛇,这使我想起了几年前实现的一个很糟糕的贪吃蛇程序,代码可以在《一个java写的贪吃蛇程序》里面找到。如今,突然想再实现一个贪吃蛇,不过这次绝对不能再那么糟糕了。 用链表实现并且只用链表实现贪吃蛇是一个不错的主意,于是初步的打算就是先规划出到底需要什么链表,图示如下:游戏面板上的所有的元素都处于一条或者多条链表之中,这样整个游戏的操作就简
2014-02-27 17:57:57
1033
转载 详解Linux终端下编写“贪吃蛇”游戏
大一学习C语言的时候就想要用Turbo C编写一个视频小游戏出来,种种原因后面搁浅了,现在借着学习Linux系统编程的劲头,编写了一个终端下可以运行的贪吃蛇游戏,其中此视频游戏用到的一些知识和操作系统运行时候的一些简单功能有点类似,引用《Unix/Linux 编程实践教程》(Bruce Molay著)里面所介绍的视频游戏一般的编写以及同操作系统的关系的原文如下: 一、视频游戏如何做
2014-02-27 17:56:38
1388
转载 对C的printf函数的可变长参数实现的分析
内容摘要:一直以来都觉得printf似乎是c语言库中功能最强大的函数之一,不仅因为它能格式化输出,更在于它的参数个数没有限制,要几个就给几个,来者不拒。printf这种对参数个数和参数类型的强大适应性,让人产生了对它进行探索的浓厚兴趣。 【1. 使用情形 】[cpp] view plaincopyint a =10; double
2014-02-12 17:49:57
1167
原创 C语言深度解剖
1.10,return 关键字return用来终止一个函数并返回其后面跟着的值。return (Val);//此括号可以省略。但一般不省略,尤其在返回一个表达式的值时。return可以返回些什么东西呢?看下面例子:char * Func(void){char str[30];…return str;}str 属于局部变量,位于栈内存中,在Func结束的时候被
2014-02-10 11:21:25
678
转载 linux C获取公网IP
#include #include #include #include #include #include #include #include #include #include #include #include #include #define BUF_SIZE 512char publicIP[30];
2014-01-16 11:51:12
2644
原创 如何用wap_cli启动wifi
1: 运行 wpa_supplicant first 先查看wpa_supplicant 选项:root@hi-target:~# wpa_supplicant -husage: wpa_supplicant [-BddhKLqqstuvW] [-P] [-g] \ -i -c [-C] [-D] [-p] \ [-b] [-f] [-e] \
2014-01-15 12:12:46
2582
原创 如何交叉编译sqlite
1、从sqlite官方网上下载sqlite-autoconf-3071600.tar.gz原码,网址http://www.sqlite.org/download.html2、tar -zxvf sqlite-autoconf-3071600.tar.gz -C ./ 解压到当前目录下3、cd sqlite-autoconf-3071600/ 进入到原码目录下4、./configure
2013-12-30 19:47:00
826
转载 linux的led子系统
==================================本文系本站原创,欢迎转载!转载请注明出处: http://www.cnblogs.com/gdt-a20==================================时代不同了,连led都成子系统了,针对内核提供的通用模型,分析一下,好久没写文章了也!代码位于drivers/leds下,看一下
2013-12-18 09:49:39
592
转载 linux2.6中的platform和of_platform机制B
原文地址:linux2.6中的platform和of_platform机制B 作者:BenRuanA platform机制platform_driver_register,什么时候调用PROBE函数 注册后如何找到驱动匹配的设备platform_driver_register(struct platform_driver *drv)注册后如何找到驱动匹配的
2013-12-17 23:12:54
668
原创 madplay配置以及编译
如何在PC虚拟机中制作一个mp3 player。需要准备的库文件有zlib-1.2.3.tar.gz,libid3tag-0.15.1b.tar.gz,libmad-0.15.1b.tar.gz,madplay-0.15.2b.tar.gz, alsa-lib-1.0.26zlib-1.2.3.tar.tar用于文件的压缩和解压libid3tag-0.15.1b.tar.g
2013-11-12 14:57:03
3998
转载 FAT over NAND flash
引子最近有一个项目需要在NAND FLASH裸片上建立文件系统,由于必须通过USB给Windows访问,所以FAT是唯一的选择。由于FAT不是为Flash设计,因此需要透过FTL(Flash Translation Layer)来访问NAND FLASH。 原本以为FTL的支持在嵌入式Linux下是很成熟的,因为在编译内核时,MTD下就有可选的FTL和NFTL可供选择,但是dig进去才
2013-10-17 16:16:15
729
原创 VC6下SQLite数据库应用起步
系统环境: win7 + VC6.0SQLite是一款非常适合嵌入式应用的数据库,小巧、快速和可靠。真正的开源免费,不保留任何版权(Public Domain)。它无需运行额外的服务器进程,用它来开发桌面数据库的应用,似乎比MS Access更显得简洁。【一. 生成SQLite库文件】 新建“C:\mylibs\libSQLite3”目录,将它作为我们的当前工作目录。
2013-10-10 09:32:38
725
转载 基于状态机的LCD多级菜单设计
1 概述 液晶显示器(Liquid Crystal Display,LCD)由于其体积和功耗等因素,非常适合嵌入式环境的使用。近年来,随着微处理器性能的提高,嵌入式系统实现的功能越来越强大,产生的数据量也越来越大。相对应地,需要显示的数据量也随之增大。嵌入式环境下使用LCD显示器,由于条件限制,体积较小,且显示的内容有限。而且,传统的LCD显示模式总是不加选择地显示所有监控的信息,在监控
2013-08-23 22:25:07
3789
3
转载 Linux写时拷贝技术(copy-on-write)
COW技术初窥: 在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。 那么子进程的物理空间没有代码,怎么去取指令执行exec系统调用呢? 在fork之后exec之前两个进程用
2013-08-20 19:06:03
528
原创 如何为linux 应用添加快捷方式
1、创建一个文件,将下面的代码拷贝进去这里我们只需要关注3个地方,分别为Exec=软件执行文件的路径,Icon=快捷方式图标(如果有的话),Name=快捷方式名称。根据自己软件按转的位置修改代码,保存之后关闭文件。[Desktop Entry]Categories=Development;Comment[zh_CN]=Comment=Exec=/home/owen/So
2013-08-01 16:05:46
965
转载 uboot lds 文件说明
lds 文件说明1.1 主要符号说明1. OUTPUT_FORMAT(bfdname) 指定输出可执行文件格式.2. OUTPUT_ARCH(bfdname) 指定输出可执行文件所运行 CPU 平台3. ENTRY(symbol) 指定可执行文件的入口段1.2 段定义说明1. 段定义格式 SECTIONS { ... 段名
2013-06-24 16:09:06
612
转载 为何ARM7中PC=PC+8
1.1ARM7流水线ARM7采用典型的三级流水线的冯.若伊曼结构。每条指令分取址,译码,执行三个阶段,分别在不同的功能部件上依次独立完成。取指部件完成从存储器装载一条指令,通过译码部件产生下 一周期数据路径需要的控制信号,完成寄存器的解码,再送到执行单元完成寄存器的读取、ALU运算及运算结果的写回,需要访问存储器的指令完成存储器的访 问。流水线上虽然一条指令仍需3个时钟周期来完成,但通过多个部
2013-05-20 17:23:07
1268
原创 fedora9.0 NFS挂载文件系统到6410上
红帽的版本一下就通了。为了搞个QT,跟教程换了个系统。麻烦不断。按部就班一点点配置。一,linux fedora 9 tftp 配置 1.下载tftp服务器、客户端tftp和守护进程xinetd三个包# yum install xinetd tftp tftp-server //xinetd.i386 2:2.3.14-21.fc10//tftp-0.49-1.fc10.
2013-01-14 21:03:24
538
原创 Fedora下安装xgcom串口调试小助手
今天需要在linux下调试串口,按教程里面安装了minicom了,没成功。而且命令行界面的操作方式也麻烦。搜了图形界面的串口调试软件,看有推荐xgcom。类似window是下的超级终端。源代码下载地址:http://code.google.com/p/xgcom/ 编译的时候需要安装的库 make, automake,libglib2.0-dev,libvte-dev,libgtk
2013-01-14 11:49:59
2072
转载 Fedora关于yum 升级错误
今天在Fedora下用yum 安装软件出现“Error: Cannot retrieve repository metadata (repomd.xml) for repository: adobe-linux-i386. Please verify its path and try again”在百度里搜索了一下,发现不只我一个人出现这个问题,但是都有一点点区别。不过主要问题还是yu
2013-01-14 11:22:08
524
转载 VMware下安装Fedora9.0与网卡设置
VMware Workstation v5.5下安装Fedora9.0与网卡设置;安装时有点问题。需要按照下面的设置进行才能安装成功。新建虚拟机:1. 如下图所示,选择“自定义”2. 如下图所示,客人操作系统选择“linux”,版本选择“Red hat”3. 如下图所示,SCSI适配器选择“总线”类型4. 如下图所示,
2013-01-14 11:21:22
854
转载 Fedora9.0上网配置
经过两个小时的奋斗。终于在fedora9.0下面实现了上网,高兴之余将心得分享给大家吧!!!本文的上网软件环境如下:虚拟机——VMware7.0,虚拟系统连网方式为:host-only(虚拟机的三种上网方式参看我的上一遍博客),系统版本:Fedora9.0(内核版本:2.6.25),由于本人使用的是host-only连网方式,所以我就讲解Fedora9.0中host-only的网络配置。
2013-01-14 11:14:13
546
转载 vmware下配置Linux上网
众所周知,虚拟机下的Linux系统有三种上网方式:host-only、bridged和NAT。这里我只介绍host-only和bridged两种上网方式,下图就是他们的联网模型:从上图可知:bridged方式虚拟机和物理windows机器是等同的,图上右侧的白色电脑代表的是其他的电脑(局域网或internet中电脑),所以要使虚拟机能够访问其他机器,那么
2013-01-14 11:13:24
518
原创 LCD设备驱动程序3
接着上文讲到的结构体struct s3cfb_fimd_info_t s3cfb_fimd(见drivers/video/samsung/s3cfb_fimd5x.c)由结构命名FIMD: Fully Interactive Mobile Display (完全交互式移动显示设备)以及结构体原形,猜测与硬件配置有关。1,struct s3cfb_info_t 结构体原形typed
2012-12-28 20:49:06
579
原创 LCD设备驱动程序2
三、LCD驱动分析1,LCD平台设备的加载和卸载函数 /linux/arch/arm/mach-s3c6410/mach-smdk6410.cstatic void __init smdk6410_machine_init(void){ 。。。。。。platform_add_devices(smdk6410_devices, ARRAY_SIZE(smdk641
2012-12-28 20:32:47
734
原创 LCD设备驱动程序1
一、Framebuffer 的概述1,FrameBuffer的概念(1)FrameBuffer是显卡硬件的抽象 帧缓冲(framebuffer)是Linux 系统为显示设备提供的一个接口,它将显示缓冲区抽象,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。用户不必关心物理显示缓冲区的具体位置及存放方式,这些都由帧缓冲设备驱动本身来完成。
2012-12-28 15:48:14
756
转载 s3c6410 LCD驱动的分析过程(1)
首先,linux的驱动可以通过make menuconfig命令来进行配置,通过该命令,我们可以大概了解到这套内核所含了哪些可用的源代码。因此我们可以通过这个命令,来查看源代码中包含什么驱动。初步定位驱动程序的位置。以下讲述一下我在没有其它资料的前提下怎么查找s3c6410芯片LCD相关驱动代码的位置的过程(假设你想换一下LCD屏,要改一下该驱动的各种信号的时序和分辨率):1、执行make
2012-12-27 22:34:51
710
转载 LINUX 输入子系统架构分析
内核的输入子系统是对分散的,多种不同类别的输入设备(如键盘,鼠标,跟踪球,操纵杆,触摸屏,加速计和手写板)等字符设备进行统一处理的一层抽象,就是在字符设备驱动上抽象出的一层。输入子系统包括两类驱动程序:事件驱动程序和设备驱动程序。事件驱动程序负责和应用程序的接口,而设备驱动程序负责和底层输入设备的通信。鼠标事件生成文件mousedev属于事件驱动程序,而PS/2鼠标驱动程序是设备驱动程序。事件驱动
2012-12-17 22:55:06
820
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人