linux环境下软件安装卸载
一: 软件安装卸载:... 1
1.1 RPM包的安装... 1
1.2 tar.gz包的安装... 2
1.3 BIN结尾的包的安装 . 2
1.4 注意:... 3
二: 执行软件... 3
三: 如何卸载: 4
3.1 卸载方法一... 5
3.2 卸载方法二... 6
一: 软件安装卸载:
1.1 RPM包的安装
A:RPM包,这种软件包就像windows的EXE安装文件一样,各种文件已经编译好,并打了包,哪个文件该放到哪个文件夹,都指定好了,安装非常方便,在图形界面里你只需要双击就能自动安装。 
1.2 tar.gz包的安装
B:tar.gz(bz或bz2等)结尾的源代码包,这种软件包里面都是源程序,没有、编译过,需要编译后才能安装,安装方法为:1、打开一个SHELL,即终端2、用CD 命令进入源代码压缩包所在的目录3、根据压缩包类型解压缩文件(*代表压缩包名称)tar -zxvf ****.tar.gztar -jxvf ****.tar.bz(或bz2)4、用CD命令进入解压缩后的目录5、输入编译文件命令:./configure(有的压缩包已经编译过,这一步可以省去)6、然后是命令:make7、再是安装文件...

>> 阅读全文

Shell 编程
在使用Linux操作系统时,每个用户登录系统后,系统总会出现不同的命令提示符,如#,$或者~等,然后用户输入的任何正确命令,系统都可以根据命令的要求执行,直到用户注销,在这期间,用户的所有命令都会经过解释才能被执行,而完成这一功能的机制就是SHELL,
SHELL具有以下特点:
(1) 对已有命令进行适当组合,构成新的命令,而组合方式很简单
(2) 它们提供了文件名扩展字符,使得用单一的字符串可以匹配多个文件名,省去键入一长串文件名的麻烦
(3) 可以直接使用 ShELL的内置命令,而不需要创建新的进程
(4) SHELL 允许灵活使用数据流,提供通配符,输入/输出重定向,管道线等机制,方便模式匹配,I/O 处理和数据传输
(5) 结构化的程序模块,提供了顺序程序控制,条件控制,循环控制等。
(6) SHELL提供了在后台执行命令的能力
(7) SHELL提供了可配置的环境,允许用户创建和修改命令,命令提示符和其他系统的行为
(8) SHELL提供了一个高级的命令语言,允许用户能创建从简单到复杂的程序。
在Linux和UNIX系统里可以...

>> 阅读全文

C51包含头文件方法
在单片机程序编写过程中使用C51可以很方便的移植,其中从包含头文件的过程中就可以看出其方便之处.比如写了个LCD1602的驱动程序,如果使用汇编语言,则每一次新建立一个工程的时候都要将原来写好的LCD1602驱动程序的那一段拷贝到程序中,这样做比较麻烦,而如果用C51则可以很轻松的解决这个问题.包含头文件的方法可以有两个: 1.将写好的头文件拷贝到当前工程的文件夹下面,然后在源程序里用#include的方法包含进去,假设在这个头文件中定义了某个函数,这样在头文件中定义的函数变可以直接在main()函数中调用了.示例如下: #include #include "lcd1602.h" main() { ........... WriteLcdInstr(0x01);//在lcd1602.h中已经定义 ........... } 2.上述方法仍然要求每建立一个工程就需要把对应的头文件复制到工程的文件夹里,这样看来仍然是比较麻烦的,这时还有另外一中方法就是将做好的头文件放在一个文件夹中,然后将这个文件夹整体拷贝到..KEIL\C51\INC\下面,以后若需要使用某个头文件,就如使用KEIL自带的头文件一样方便了,在主函数mani()之前有一句#include 就可以在main()中使用其中的函数了.

>> 阅读全文

C/C++ 编码规范(适用C51)详解
今天人们越来越明白软件设计更多地是一种工程,而不是一种个人艺术.由于大型产品的开发通常由很多的人协同作战,如果不统一编程规范,最终合到一起的程序,其可读性将较差,这不仅给代码的理解带来障碍,增加维护阶段的工作量,同时不规范的代码隐含错误的可能性也比较大. BELL实验室的研究资料表明,软件错误中18%左右产生于概要设计阶段,15%左右产生于详细设计阶段,而编码阶段产生的错误占的比例则接近50%;分析表明,编码阶段产生的错误当中,语法错误大概占20%左右,而由于未严格检查软件逻辑导致的错误、函数(模块)之间接口错误及由于代码可理解度低导致优化维护阶段对代码的错误修改引起的错误则占了一半以上.可见,提高软件质量必须降低编码阶段的错误率.如何有效降低编码阶段的错误呢?BELL实验室的研究人员制定了详细的软件编程规范,并培训每一位程序员,最终的结果把编码阶段的错误降至10%左右,同时也降低了程序的测试费用,效果相当显著. 本文从代码的可维护性(可读、可理解性、可修改性)、代码逻辑与效率、函数(模块)接口、可测试性四个方面阐述了软件编程规范,规范分成规则和建议两种,其中规则部分为强制执行项目,而建议部分则不作强...

>> 阅读全文


Keil 的 lib 库函数的封装
在协同工作中,经常会有模块维护和代码封装的问题。把需要封装的代码打成一个lib无疑是一种很好的方式。
1.创建lib
创建一个lib很容易,只需要创建一个target,然后把需要封装的代码全部加进来,然后再Options of Target中选择Create Library,然后编译,因为是lib所以不需要链接,编译过了,你的lib就创建了。当然了,为了别人可以轻松的使用,请提供头文件支持哦。
2.使用lib
使用lib就更容易了,把lib和头文件加入你的工程,直接调用就是了。lib库会和你工程中其它编译后的obj一起链接,形成最后的目标文件。
3.注意事项
首先,Startup和中断处理程序不要封入LIB,这些程序会在链接的时候产生问题。具体的原因么,有点复杂,应该是中断程序的link机制有所不同的关系吧。
其次,Lib的文件要分的细一点,没有调用关系的两个函数不要放到同一个C文件中,因为LIB51在链接的时候是按模块来链接的,一个模块就对应一个C文件,假如链接器因为要使用你一个函数fA而引入了A模块,那么A模块中的另外的函数也会被引入,而另外的函数你又没有...

>> 阅读全文


嵌入式基于Proteus的ARM虚拟开发
嵌入式基于Proteus的ARM虚拟开发方法有两种:一种是用ADS编译环境与Proteus 结合,另一种是Keil for ARM ,也就是用Keil uVsion 3软件和Proteus结合。
基于Proteus和ADS的ARM虚拟实验室建设
1 引言
现在 ?:LeF\wc ,人们生活中的每个角落都有嵌入式设备的存在 ?:LeF\wc ,比如数码相机、移动电话、TV机顶盒及掌上电脑等等。这些嵌入式设备多采用32位RISC嵌入式处理器作为核心部件。 ?:LeF\wc
其中基于ARM核的嵌入式处理器独占鳌头 ?:LeF\wc ,在32位RISC处理器中占据超过75%的市场份额。ARM核嵌入式处理器通常采用C语言编程 ?:LeF\wc ,目前ARM公司的开发工具ADS、RealView以及Keil与arm核处理器结合较好 ?:LeF\wc ,得到了广大嵌入式学习者的一致认可。 ?:LeF\wc
在传统的嵌入式系统学习中 ?:LeF\wc ,嵌入式开发平台是必不可少的。其中资源少的开发平台便宜但功能较少 ?:LeF\wc ,资源多的开发平台又价格不菲 ?:LeF\wc ,这对广大的嵌入式爱好者无疑是个障碍。然而 ?:LeF\wc ,有没有在不增加甚至降低开发成本的同时还能进行同样或更好的开发呢?本文介绍的P...

>> 阅读全文


PWM(Pulse Width Modulation)即脉冲宽度调制,它通过控制信号去调制方波脉冲的宽度,从而获得控制的实现。产生PWM 信号可以由硬件方法和软件方法实现。传统的硬件模拟方法是把调制信号和载波(一般是三角波)同时接入运算放大器的两个输入端作比较而得到。而软件的实现,特别是基于单片机的软件实现方法,主要是利用其内部提供的定时器,通过改变定时器的定时初值获得不同的脉冲持续时间,如果把系统的控制信号和定时器的定时初值线性对应起来,就可获得控制信号对脉宽调制的PWM 信号。所以这样线性的对应过程就成为这个实现过程的关键。控制信号的种类不同,采用不同的计算方法,又可以获得不同的PWM. 基于AT89C51单片机的PWM 软件实现的重要硬件支撑是该单片机内部的定时器。在AT89C51内实现PWM 的基本过程:首先选定脉冲的频率T,然后根据控制信号的变化范围,这里假设是(0~V),则可以求出t时刻通过控制信号V(t)的对应脉冲的正、负脉冲持续时间。这两个时间长度在单片机里是通过给定时器赋相应的初值而得,即定时器获得这样的定时初值后就在机器周期的同步下,从这个初值加1计数,定时器满时则产生相应时间长度的溢出中断,再利用这个中断所响应的服务程序去控制单片机某一引...

>> 阅读全文

题目:编程实现将数据从源数据区src复制到目标数据区dst。复制时以8个字为单位进行(提示:使用多寄存器加载/存储指令),对于最后不足8个字的数据,以字为单位进行复制。已经在一个单独的文件中定义好源数据区和目标数据区,请在另一个文件中实现题中所要求完成的功能。
代码参考:
文件datablock.s的修
export src // export伪指令声明一个符号可以被其它文件使用
export dst
area datablock,data,readwrite //声明一个数据段
src dcd 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4
dst space 20
end
注释:
1.dcd 伪指令:用来分配一段字的内存单元,并用expor初始化。指令格式如下:
Label dcd expor,expor………………
2.space 伪指令:用来分配一段字的内存单元,并用0初始化
Label space
代码实现文件datacopy.s
import src //import 伪指令告诉编译器该符号不是在本文件重定义而是在其它文件中定义,在本文件中可以拿来使用
import dst
area datacopy,code,re...

>> 阅读全文