Welcome 微信登录

首页 / 操作系统 / Linux

UART0串口编程系列

UART0串口编程系列

本文章针对的是ARM2200环境下编写串口程序,其中设计轮循方式,中断方式,以及在UC/OS-II操作系统下的串口编程。使用轮循和中断两种方式来实现串口编程。(当然了,用中断实现串口编程,系统的效率较高。但是难度也较大 。轮循方式效率较低,但是编程比较简单)UART0串口编程目录:串口编程之前奏篇UART0串口编程系列(一)裸机下的轮训方式的串口编程UART0串口编程系列(二)裸机下的中断方式的串口编程UART0串口编程系列(三)UC/OS下的串口编程注意...
Linux进程学习总结

Linux进程学习总结

最近一周学习了Linux 进程编程的知识,现对其总结如下。 在第一部分中我们先对进程的基本概念以及在Linux 中是如何来现实进程的进行介绍 Tiger-John说明 : 许多人在学习中只注重如何编程,却忘了注重原理,不去深究其基本原理。其实操作系统的原理就好 比金庸武侠小说的内功一样,而所有的具体实现如:Linux操作系统,uc/os操作系统都只是武功招式而已。如果我们内功学的很好的话,再来学习具体的实现过程是很快的。而且也会对其知识有更加本质的了解。一...
Linux 之文件编程

Linux 之文件编程

以前看一个朋友的博客,其中有一句话很犀利:“Linux 下皆文件”,短短五个字就说出了文件系统在Linux下的重要性。在Linux操作系统中,它对一切资源的管理归根到底最后都是对文件的操作。 一.前言: 在原理课上,我们就知道操作系统的五大供能之一就是对文件的管理. 那么为什么要引入文件管理的功能呢,它的主要任务是什么呢? 我们先看看它出现的 背景吧 在现代操作系统中,要利用大量的程序和数据,由于内存容量有限,且不能长期保存,于是人们想出了把这些数据以文件...
Linux 内核编程之文件系统

Linux 内核编程之文件系统

当用户层程序员在编写文件函数时,常常会用到open(),read()和write()这类系统调用,而且用的也很爽,因为我们只需要知道这些函数如何调用就OK了,而不用深究具体文件系统和实际物理介质是如何实现的。而我们内核编程人员就要了解这些底层实现,给上层人员提供更多的方便。因此我们的任务就更复杂,佛家有一句名言:“我不入地狱,谁如地狱”因此我们就要有奉献精神编写出具有统一简单效率高的接口为用户层程序员提供方便。 如果你有这种奉献精神和喜爱Linux内核以及...
Linux 中断学习之前言篇 中断之原理篇

Linux 中断学习之前言篇 中断之原理篇

Linux中断本人使用的Ubuntu,使用的内核是2.6版本.时间:2010-12-10前言:中断是计算机发展中一个重要的技术,它的出现很大程度上解放了CPU,提高了CPU的执行效率。在中断出现之前,CPU对IO采用的是轮询的方式进行服务,这使的CPU纠结在某一个IO上,一直在等待它的响应,如果它不响应,CPU就在原地一直的等下去。这样就导致了其他IO口也在等待CPU的服务,如果某个IO出现了important or emergency affairs,C...
Linux 中断学习之小试牛刀篇

Linux 中断学习之小试牛刀篇

前言 在前面分析了中断的基本原理后,就可以写一个内核中断程序来体验以下,也可以借此程序继续深入来了解内核中断的执行过程 一.内核中断程序 : 我们还是来看一看成程序: 在看程序之前,要熟悉如何进行模块编程,和了解module_pararm()的用法。如果不熟悉的话请大家看,module_param()的学习 和Linux内核模块编程 ,在此不作解释。 1.程序interrupt.c 1 /* 2 *file name :interrupt.c 3 *atu...
Linux之Git工具的使用

Linux之Git工具的使用

我相信做过项目的人,对软件版本管理的重要性是深有所知的。如果程序版本没有管理好,可能对整个项目来说就是致命的打击。所以希望大家在做项目时要注意对自己编写的程序进行一个良好的管理。前言:Git 是一个快速、可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问 . 所谓版本控制系统 (VersionControl System) ,从狭义上来说,它是软件项目开发过程中用于储存我们所写的代码所有修订版本的软件,但事实上我们可以将...
Linux内核模块编程

Linux内核模块编程

Linux内核模块编程是一个很重要的知识点。尤其是编写底层驱动程序时,一定会涉及到它。内核模块编程也是Tiger哥学习Linux时第一节课所接触的知识。由此可以看出它的important,也可以看出其实它很easy。一前言: 1. 什么是内核模块 1> 内核模块是具有独立功能的程序。它可以被单独编译,但是不能单独运行,它的运行必须被链接到内核作为内核的一部分在内核空间中运行。 2> 模块编程和内核版本密切相连,因为不同的内核版本中某些函数的函数...
Linux下一些常见的Shell 命令

Linux下一些常见的Shell 命令

对于许多经常在XP下编程的同学,突然转到Linux下编程会很不习惯,因为以前能在XP下用鼠标完成的很多事情,现在我们都用命令来完成(虽然现在很多Linux操作系统都支持鼠标操作,但是既然学习Linux了,个人认为我们平时还时多用shell命令把,其中的原因。我想大家都会懂的) 为了方便大家,哥总结了一些在Linux下最常用的一些命令。一些其他命令,当我们以后用到的时候可以再查资料,我们完全没有必要去全部记住这些命令(个人觉的也没那个必要)。 一.常用的sh...
Linux之编写用户层程序

Linux之编写用户层程序

发现一些同学在学一门程序语言时,往往花很长的时间去学习如何使用一个编译工具。 实 在是令人很纠结呀 。殊不只编译工具何其多也,而且在不断的淘汰,就我们知道的c 编译工具就有(Turboc ,Vc ,Vim,ADS.......)如果我们花大量的时间用在如何去精通它们,那将是很大的一个悲剧。我们应该把大量的时间用在如何学会一个语言这才是至关重要的。希望大家只要对工具有个大概了解就行了。平时,用这些工具时如果有问题可以查查资料就行了。一.如何在Linux下编写...
编译和使用独立于Linux系统之外的Python

编译和使用独立于Linux系统之外的Python

为何有这样的要求,实在出于无奈。实在是无语于RPM的包依赖管理和“企业版”Linux老旧的基础软件版本——我的工作机是RHEL5.4,某台正在玩的机器是RHEL4.3改装版,所附Python分别是2.4.5和2.3.6。拜托,2.6已经出来很久了。新版的RPM包找不到,我确又不想伤筋动骨覆盖/usr/bin和/usr/lib。于是有了将Python源代码从头弄起的想法。既然不影响系统,使用普通帐户也就够了,无需root。首先下载python2.6.5的li...
Linux 模块编译步骤

Linux 模块编译步骤

本文将直接了当的带你进入linux的模块编译。当然在介绍的过程当中,我也会添加一些必要的注释,以便初学者能够看懂。之所以要写这篇文章,主要是因为从书本上学的话,可能要花更长的时间才能学会整个过程,因为看书的话是一个学习过程,而我这篇文章更像是一个培训。所以实践性和总结性更强。通过本文你将会学到编译一个模块和模块makefile的基本知识。以及加载(卸载)模块,查看系统消息的一些知识;声明:本文为初学者所写,如果你已经是一个linux模块编译高手,还请指正我...
Android 下使用 JSON 实现 HTTP 请求

Android 下使用 JSON 实现 HTTP 请求

最近在用Android调用Web服务,开始准备用WebService来调用,用jws的WebService方式写好后发现Android调用的时候很多问题不知道咋解决了,后来发现有一个更好的办法,就是采用HttpPost来与后台交互。下面就说一下相关的JSON的操作:不得不说,JSON 格式的确是非常美妙的,速度快而且简化了很多操作在 Android 下,Android SDK 已经为我们封装好了整个与 JSON 有关的操作,使用非常方便以下就是一个标准的 ...
Linux Shell脚本获得当前文件路径

Linux Shell脚本获得当前文件路径

在php当中获得当前文件路径用: dirname(__FILE__)在shell当中没有直接的变量和函数,$(cd "$(dirname "$0")"; pwd) 但是把他用在嵌套脚本时就会发生问题。例如我在脚本a里面调用脚本b。 脚本b: selfpath=$(cd "$(dirname "$0")"; pwd) echo $selfpath 脚本a: . b.sh 最后输出的结果是脚本a的绝对路径,而不是脚本b的绝对路径。我发现问题出在$0这个地方。这...
./configure,make,make install的作用

./configure,make,make install的作用

这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。make是用来编译的,它从Makefile中读取指令,然后编译。make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。-----1、c...
Linux Kernel网络部分代码剖析

Linux Kernel网络部分代码剖析

在这个系列文章中,我自己将尝试着分析Linux kernel2.6下面的中的网络部分的源代码,主要是TCP/IP部分,只是记录自己的学习经历,如果你感兴趣,不妨说出你的理解。这是第一部分,主要分析一下TCP/IP相关协议以及实现网络协议时kennel常用的数据结构,提供一些基础知识。注意,虽然分析的主要是TCP/IP族,但不可避免提及其它的一些协议,因为TCP/IP族只是网络协议的一个组成。TCP/IP协议的分层 在TCP/IP协议的学习中,很多人对TC...
<< 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 >>