linux
越来越认真
这个作者很懒,什么都没留下…
展开
-
SecureCRT连接Linux--Ubuntu
SSH看做是telnet的加强版,telnet的密码和信息都是不加密的,而ssh则加密。想用SecureCRT连接Linux--Ubuntu,需要SSH服务的支持,很多Linux系统在安装的时候是不安装SSH服务的,所以需要自己手动安装,才能用SecureCRT连接Linux。场景描述:主机 Windows2003,虚拟机VMware,虚拟机系统Ubuntu 9.10转载 2016-07-18 21:14:43 · 450 阅读 · 0 评论 -
copy_to_user和copy_from_user
在内核的学习中会遇到很多挺有意思的函数,而且能沿着一个函数扯出来很多个相关的函数。copy_to_user和copy_from_user就是在进行驱动相关程序设计的时候,要经常遇到的两个函数。由于内核空间与用户空间的内存不能直接互访,因此借助函数copy_to_user()完成用户空间到内核空间的复制,函数copy_from_user()完成内核空间到用户空间的复制。下面我们来仔细的理一下这两个函转载 2013-10-30 11:04:00 · 583 阅读 · 0 评论 -
#ifdef __cplusplus extern "C" { #endif 的解释
#ifdef __cplusplus extern "C" { #endif 的解释在看代码时看到如下的代码:#ifdef __cplusplusextern "C" {#endif 时常在cpp的代码之中看到这样的代码:#ifdef __cplusplusextern "C" {#endif//一段代码#ifdef _转载 2013-10-30 15:52:00 · 552 阅读 · 0 评论 -
Linux中断内核编程
转自http://www.linuxidc.com/Linux/2011-02/32129.htm前言在前面分析了中断的基本原理后,就可以写一个内核中断程序来体验以下,也可以借此程序继续深入来了解内核中断的执行过程一.内核中断程序 :我们还是来看一看成程序:在看程序之前,要熟悉如何进行模块编程,和了解module_pararm()的用法。如果不熟悉的话请大家转载 2013-10-21 13:42:30 · 574 阅读 · 0 评论 -
request_irq() | 注册中断服务
一、中断注册方法在linux内核中用于申请中断的函数是request_irq(),函数原型在Kernel/irq/manage.c中定义:int request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devn转载 2013-10-21 13:38:31 · 571 阅读 · 0 评论 -
_IO, _IOR, _IOW, _IOWR 宏的用法与解析
在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。bit29~bit15 14位为 "数据大小" 区,表示 ioctl() 中的 arg 变量传送转载 2013-10-21 16:08:58 · 493 阅读 · 0 评论 -
linux 之系统时钟和硬件时钟
转自http://361324767.blog.163.com/blog/static/11490252520123933922849/功能说明:显示与设定硬件时钟。语 法:hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test][--utc][--version][--set --d转载 2013-10-17 13:28:00 · 691 阅读 · 0 评论 -
shell 特殊符号
在shell中常用的特殊符号罗列如下: # ; ;; . , / \\ 'string'| ! $ ${} $? $$ $* \"string\"* ** ? : ^ $# $@ `command`{} [] [[]] () (()) || && {xx,yy,zz,...}~ ~+ ~- & \\ + - %=转载 2013-10-16 10:08:16 · 788 阅读 · 0 评论 -
解决SecureCRT中文显示乱码
操作步骤以下两步:远程linux机器。修改环境变量LANG。例如在~/.bash_profile里面添加[plain] view plaincopyexport LANG=zh_CN.UTF8 重新登录之后生效。现在查看一下当前设置:[plain] view plaincopy转载 2013-10-12 14:00:52 · 572 阅读 · 0 评论 -
tty0等区别
1、串行端口终端(/dev/ttySn) 串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常被称为终端设备,因为 那时它的最大用途就是用来连接终端。这些串行端口所对应的设备名称是/dev/tts/0(或/dev/ttyS0), /dev/tts/1(或/dev/ttyS1)等,设备号转载 2013-09-26 17:09:14 · 641 阅读 · 0 评论 -
memcpy和memmove函数
memcpy和memmove函数的实现,需要注意memmove的覆盖问题,还有指针类型需要考虑。下面的例子中,先给出了错误的例子,而后给出了正确的例子,引以为戒!区别:两个函数都是进行n字节内存内容的拷贝,入口参数和返回参数也都一样,可是这两个函数在内部实现上是有一定区别的,这主要是因为dest内存区域和src内存区域可能有一下四种不同的情况,注意count的影响:src的内存区域和d转载 2013-10-07 19:47:57 · 481 阅读 · 0 评论 -
Linux串口—struct termios结构体
一、数据成员termios 函数族提供了一个常规的终端接口,用于控制非同步通信端口。 这个结 构包含了至少下列成员: tcflag_t c_iflag; /* 输入模式 */ tcflag_t c_oflag; /* 输出模式 */转载 2013-10-06 23:36:29 · 696 阅读 · 0 评论 -
usleep函数
usleep功能把进程挂起一段时间, 单位是微秒(百万分之一秒); 头文件: unistd.h 语法: void usleep(int micro_seconds); 返回值: 无 内容说明:本函数可暂时使程序停止执行。参数 micro_seconds 为要暂停的微秒数(us)。 注意:这个函数不能工作在 Windows 操作系统中。参见:us转载 2013-10-06 10:48:57 · 2803 阅读 · 0 评论 -
strcpy
strcpyC语言标准库函数strcpy,把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间目 录1C语言标准库函数2典型实现3题目1C语言标准库函数原型声明:extern char *strcpy(char* dest, const cha转载 2013-10-30 13:09:20 · 589 阅读 · 0 评论 -
strchr函数
函数原型:extern char *strchr(char *str,char character)参数说明:str为一个字符串的指针,character为一个待查找字符。 所在库名:#include 函数功能:从字符串str中寻找字符character第一次出现的位置。 返回说明:返回指向第一次出现字符character位置的指针,如果没找到则转载 2013-10-30 13:20:05 · 574 阅读 · 0 评论 -
toupper函数
原型:1externint toupper(intc)1#include 功能:将字符c转换为大写英文字母说明:如果c为小写英文字母,则返回对应的大写字母;否则返回原来的值。转载 2013-10-30 16:32:01 · 1009 阅读 · 0 评论 -
ubuntu13.04一些关于安装vim的问题详解
1、问题来源vi 1.c能进入命令行模式,不能进入插入模式,无法编辑;sudo apt-get install vim 提示找不到文件安装失败2、解决方案,主要有两种方案:方案一1、首先输入命令sudo apt-get update2、然后输入命令sudo apt-get install vim当我输入sudo apt-get update命令时,得到的反馈原创 2016-03-23 21:56:39 · 1055 阅读 · 0 评论 -
如何在arm平台移植boa Web服务器
开发平台:Ubuntu14.04LTS+OK335XSAuthor:casyDate:2014/8/61.到Boa的官方网站:www.boa.org,或另一个下载地址:http://sourceforge.net/projects/boa/files/转载 2015-01-28 10:23:45 · 1231 阅读 · 0 评论 -
Linux系统中/dev/mtd与/dev/mtdblock的区别
MTD(memory technology device内存技术设备)是用于访问memory设备(ROM、flash)的Linux的子系统。MTD的主要目的是为了使新的memory设备的驱 动更加简单,为此它在硬件和上层之间提供了一个抽象的接口。MTD的所有源代码在/drivers/mtd子目录下。我将CFI接口的MTD设备分为四层 (从设备节点直到底层硬件驱动),这四层从上到下依次是:设备节点、转载 2014-05-06 09:14:37 · 536 阅读 · 0 评论 -
Hi3515——关于I2C和DS1339
from http://blog.csdn.net/wolfliuming/article/details/6400378Hi3515的RTC模块貌似有BUG,文档上建议不要使用,所以只能外扩一个DS1339来作为实时时钟,但是找到海思给的linux源码,I2C和DS1339的驱动都没改,在make menuconfig里面改了一下,/dev目录下没反应,只能跟到bus_for转载 2014-02-25 13:49:17 · 1168 阅读 · 0 评论 -
socket函数htons()
概述编辑在Windows和Linux网络编程时需要用到的,用来将主机字节顺序转化为网络字节顺序,以Windows下的代码为例:#include u_short htons(u_short hostshort);htons的功能:将一个无符号短整型的主机数值转换为网络字节顺序,即大尾顺序(big-endian)参数u_short hostshort:16位无符转载 2014-01-27 11:07:31 · 4126 阅读 · 0 评论 -
c中static的作用
c中static的作用在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a转载 2013-12-31 11:11:37 · 483 阅读 · 0 评论 -
海思Hi3520开发环境搭建
来源:Linux社区 作者:wolfliuminghttp://www.linuxidc.com/Linux/2012-01/51488.htm刚到手的Hi3520开发板,拿来第一件事当然是搭环境,本来调了那么多板子,这不是小菜一碟嘛,可就是挂NFS还浪费了快一个小时,郁闷的了,这倒也好,顺着Hi3520的脉络,就把这个环境搭建过程记录一下,权当记个笔记噻。。。买的是雅仪科技转载 2013-11-28 10:55:13 · 960 阅读 · 0 评论 -
安全的strlcpy和strlcat字符串操作函数
学过C语言的肯定都知道strcpy和strcat,但是这两个函数有个致命的缺陷,它们不检查dst是否有足够的空间,如果src足够长必然会导致缓冲区溢出,于是有就了改进版strncpy和strncat,这两个函数在一定程度上解决了安全问题,但是很多程序员都不愿使用它们,原因如下:1. 对'\0'的处理size_t num参数表示需要拷贝的字符个数,在num小于等于src的情况转载 2013-11-12 10:19:15 · 1881 阅读 · 0 评论 -
自旋锁(spinlock) 解释得经典,透彻
自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。 由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。 信号量和读写信号量适合于保持时间较长的情况,它们会导致调用者睡眠,因此只能在进程上下文使用(_trylock的转载 2013-11-19 10:47:03 · 701 阅读 · 0 评论 -
深入理解Linux中内存管理
深入理解Linux中内存管理作者: fuliangcheng 来源: chinaunix 发布时间: 2013-10-16 22:44 阅读: 4587 次 推荐: 12 原文链接 [收藏] 前一段时间看了《深入理解Linux内核》对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Lin转载 2013-10-31 16:50:34 · 761 阅读 · 0 评论 -
isdigit函数
定义函数 int isdigit(int c) 函数说明 检查参数c是否为阿拉伯数字0到9。 返回值 若参数c为阿拉伯数字,则返回TRUE,否则返回NULL(0)。 附加说明 此为宏定义,非真正函数。 范例 /* 找出str字符串中为阿拉伯数字的字符*/ #include main() { char str[]="123@#FDsP[e?"; int i; for(i=0;转载 2013-10-30 16:33:15 · 706 阅读 · 0 评论 -
atoi函数
atoi把字符串转换成整型数。ASCII to integer 的缩写。目 录1简介1.1 C语言库函数名1.2 原型:1.3 UNICODE2函数说明1简介C语言库函数名atoi原型:int atoi(const char *np转载 2013-10-30 13:27:06 · 568 阅读 · 0 评论 -
串口函数tcflush()
tcflush() 丢弃要写入引用的对象,但是尚未传输的数据,或者收到但是尚未读取的数据,取决于 queue_selector 的值: TCIFLUSH 刷新收到的数据但是不读 TCOFLUSH 刷新写入的数据但是不传送 TCIOFLUSH 同时刷新收到的数据但是不读,并且刷新写入的数据但是不传送通俗地说就是将输出缓冲器清空,把输入缓冲区清空。缓冲区里的数据都废弃转载 2013-10-06 22:32:55 · 1653 阅读 · 0 评论 -
系统调用
Linux系统将进程的可执行空间分为用户空间和内核空间,如图这是因为在Linux中用户程序不能直接访问内核提供的服务。为了更好的保护内核空间,将程序的运行空间分为内核空间和用户空间,他们运行在不同的级别上,在逻辑上是相互隔离的。这好比是我们去银行取钱,我要取500元钱,我先走到办公窗口,将我的服务请求(取钱)告诉工作人员,让他帮我从我的个人帐户里面取出500元钱来,然后将钱通过转载 2013-09-16 21:52:58 · 874 阅读 · 0 评论 -
linux经典书籍
Linux驱动学习的最大困惑在于书籍的缺乏,市面上最常见的书为《linux_device_driver 3rd Edition》,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本侧重于实战的书籍也只能停留在基本的接口介绍上,更深入的东东只能靠我们自己摸索了。但万事总有一个开头,没有对Linux驱动整体框架的把握是很难做一个优秀的驱动开发者的。除了这本Jonathan Corbet,转载 2013-06-26 13:21:49 · 913 阅读 · 0 评论 -
计算机编程的经典书籍
C/C++: 《C程序设计语言》http://book.douban.com/subject/1139336/ 《C Primer Plus》http://book.douban.com/subject/1319751/ 《C陷阱与缺陷》http://book.douban.com/subject/2778632/ 《C与指针》http://book.douban.com/subj转载 2013-06-26 13:52:27 · 644 阅读 · 0 评论 -
程序员都应该阅读的十一本名书
国外知名网站stackoverflow上有一个问题调查: 哪本书是对程序员最有影响、每个程序员都该阅读的书?这个调查已历时两年,目前为止吸引 了153,432人访问,读者共推荐出了478本书(还在增加),其中最火的一本 书《Code Complete》被顶了1306次。如果你是个程序员,你一定有兴 趣看看这些书里你都看过几本,如果你一本没看过的话,我也不好说什么 ,也许你是个天才,但我相信转载 2013-06-26 13:50:22 · 611 阅读 · 0 评论 -
b和b汇编l指令
B或BL指令引起处理器转移到“子程序名”处开始执行。两者的不同之处在于BL指令在转移到子程序执行之前,将其下一条指令的地址拷贝到R14(LR,链接寄存器)。由于BL指令保存了下条指令的地址,因此使用指令“MOV PC ,LR”即可实现子程序的返回。而B指令则无法实现子程序的返回,只能实现单纯的跳转。用户在编程的时候,可根据具体应用选用合适的子程序调用语句。 AREA Init,转载 2013-06-26 11:15:24 · 1071 阅读 · 0 评论 -
CPSR 程序状态寄存器
用MSR指令对PSR进行操作的时候,为了设定操作的范围,避免对某些位的操作而影响其他部分而定义了这几个FLAG。 具体指令如下: MSR{cond} _, #immed_8rMSR{cond} _, Rm 的具体含义如下: specifies the field or fields to be moved. can be one or more of: c - contro原创 2013-06-26 09:41:18 · 822 阅读 · 0 评论 -
对一名电子信息工程专业应届毕业生的建议
最近几天在帮公司招人(只是帮助招人,不要产生任何别的联想),晚上收到了一份网友的简历,他问我看了他的简历后有什么看法以及有哪些不足。虽然很晚了,但是觉得很有必要回复一下他,考虑到还有很多朋友存在着类似的问题,就写在QQ日志里了。首先声明,我的高度导致我就只能看这么远,也许很多看法和建议是不合适的,欢迎大家指教。//------------------------------转载 2013-06-26 14:09:00 · 1476 阅读 · 0 评论 -
ARM存储器的大小端存储方式
大端格式和小端格式是两种存储字数据的方法。具体讲是在ARM体系的嵌入式系统结构中存储器存放数据的两种叫法,在嵌入式体系结构中将存储器看作是从零地址开始的字节的线性组合。从第0~3字节放置第一个存储的字数据,从第4~7字节放置第二个存储的字数据,依次排序。作为32位的微处理器,ARM体系结构可支持最大寻址4GB(2^32字节)。大端格式是指字数据的高字节放置在地地址中,而低字节数据放置在高地址中。原创 2013-06-25 14:29:22 · 3658 阅读 · 1 评论 -
linux常用命令
关闭系统halt重启系统rebootclear 清屏 service iptables stop 关防火墙service nfs restart 重启nfsservice network restart 重启网络exportfs 查看nfs有没有打开cat /proc/dev配置nfs文件 #vi /etc/exportstar xzvf .gz原创 2013-07-10 10:42:52 · 476 阅读 · 0 评论 -
宏定义#error等
# 空指令,无任何效果 #include 包含一个源代码文件 #define 定义宏 #undef 取消已定义的宏 #if 如果给定条件为真,则编译下面代码 #ifdef 如果宏已经定义,则编译下面代码 #if原创 2013-06-20 17:33:03 · 1138 阅读 · 0 评论 -
console控制台
一.结构体1.console[cpp] view plaincopystruct console { char name[16]; //console名 void (*write)(struct console *, const char *, unsigned); //写方法转载 2013-06-20 15:41:29 · 868 阅读 · 0 评论