linux研究
fpmystar
这个作者很懒,什么都没留下…
展开
-
minigui-1.3.3移植到SEP4020EVB详解
在这里只讲怎样将minigui-1.3.3移植到开发板EVB-SEP4020上去,在pc上安装minigui-1.3.3不用讲,这里我用到的交叉编译器是arm-linux-gcc3.4.1MiniGUI 的编译需要一些库文件,缺省我们的 gcc 基本上都有这些库文件,所以不需要安装,可是现在要交叉编译了,交叉编译器可是不带这些库文件的,所以我们得首先自己编译这些库文件装到交叉编译器中去。注意一点:原创 2009-02-11 14:14:00 · 791 阅读 · 0 评论 -
autoconf 的使用详解(2)
每个configure.scan文件都是以AC_INIT开头,以AC_OUTPUT结束。我们不难从文件中看出confiugre.in文件的一般布局:AC_INIT测试程序测试函数库测试头文件测试类型定义测试结构测试编译器特性测试库函数测试系统调用AC_OUTPUT上面的调用次序只是建议性质的,但我们还是强烈建议不要随意改变对宏调用的次序。 现在就开始修改该文件:$mv co原创 2009-05-07 21:00:00 · 1400 阅读 · 0 评论 -
A zone is low on free memory--Linux下内存释放问题
最近在进行4020的SD卡测试时发现,如果长时间进行文件读写操作很容易出现如下提示:A zone is low on free memory!!上网查了下linux的内存和块设备的高速缓存问题,发现linux这块还真有文章:经常弄arm-linux的人们会注意到,当我们在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.原创 2009-05-12 18:30:00 · 1472 阅读 · 0 评论 -
Sed学习笔记
Copyright © 2004,2005, 本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。Table of Contents1. Sed简介 2. 定址 3. Sed命令 4. 选项 5. 元字符集 6. 实例 7. 脚本 8. 小技巧1. Sed简介sed是一种在线编辑器,它一次处理一原创 2009-05-13 14:51:00 · 541 阅读 · 0 评论 -
Linux Shell : Test命令参数解析
格式: test conditionstest -n string : string 不为空 test -z string : string 为空test int1 -eq int2 : int1 == int 2test int1 -ne int2 : int1 != int2 test int1 -gt int2 : int1 > int2 test int1 -ge int2原创 2009-05-14 15:27:00 · 2368 阅读 · 0 评论 -
shell脚本中一些特殊符号
1、{} 大括号:用法一:通配符扩展 eg: ls my_{finger,toe}s这条命令相当于如下命令的组合:ls my_fingers my_toeseg: mkdir {userA,userB,userC}-{home,bin,data}我们将得到 userA-home, userA-bin, userA-data, userB-home, userB-bin,userB-data,use转载 2009-05-14 15:44:00 · 2452 阅读 · 0 评论 -
Linux shell脚本编写基础
在进行linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名,例如可以写abc,smartzip这类名称,运行时只要键入./smartzip就能运行脚本了。。每行命令开头处不用就空格也行。。 第1部分. Linux 脚本编写基础1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh原创 2009-05-14 15:53:00 · 29851 阅读 · 7 评论 -
busybox1.10.4制作文件系统
1)创建根文件系统的基本目录结构。我把这个过程做成了shell脚本(文件名为mkroot) ,很方便! #! /bin/sh echo "creatint rootfs dir......" mkdir rootfs cd rootfs echo "making dir : bin dev etc lib proc sbin sys usr"原创 2009-05-18 21:53:00 · 1369 阅读 · 0 评论 -
time命令特殊用法
linux time 命令详解使用方式: time [options] COMMAND [arguments]说明: time 指令的用途,在于量测特定指令执行时所需消耗的时间及系统资源等资讯。例如 CPU 时间、记忆体、输入输出等等。需要特别注意的是,部分资讯在 Linux 上显示不出来。这是因为在 Linux 上部分资源的分配函式与 time 指令所预设的方式并不相同,以致于 ti原创 2009-05-18 22:26:00 · 826 阅读 · 0 评论 -
extern,头文件和ifndif宏
用#include可以包含其他头文件中变量、函数的声明,为什么还要extern关键字,如果我想引用一个全局变量或函数a,我只要直接在源文件中包含#include (xxx.h包含了a的声明)不就可以了么,为什么还要用extern呢??这个问题一直也是似是而非的困扰着我许多年了,今天上网狠狠查了一下总算小有所获了:头文件首先说下头文件,其实头文件对计算机而言没什么作用,她只是在预编译时在#i原创 2009-06-15 10:38:00 · 2470 阅读 · 3 评论 -
4020组播的探讨
晕死了,刚才发的一篇文章没了,csdn太挫了,好不容易自己写了一篇提交上去没反应了。 最近在测试sep4020的网络,由于以前在移植4020的网卡驱动很多还不是太懂其中的组播部分有很大一段,但也是直接仿照别人的驱动直接移植上去的,最近想测试下4020的组播是否支持,于是上网找了几篇文章看了下,然后开始设置。(1)首先当然是让linux内核支持组播协议了,在menuconfig中的网络协原创 2009-06-16 21:36:00 · 840 阅读 · 0 评论 -
implicit declaration of function 这种警告问题的原因及解决方法
最近在改进SD卡的SEP4020驱动时,在改掉所有的warning时老报一个implicit declaration of function 的警告错误,上网查了下原因,原来有两种情况会产生这种情况1 没有把函数所在的c文件生成.o目标文件2 在函数所在的c文件中定义了,但是没有在与之相关联的.h文件中声明[root@mail linux]# make CHK include原创 2009-05-11 15:48:00 · 93529 阅读 · 0 评论 -
autoconf 的使用详解(1)
最近在编译yabasic时老在configure时老过不过去,很受打击,于是决定学习下这个autoconf的过程,网上看了些资料,再找个simple代码改下,在linux下编译出来,有了初步的结果,现在链接这块还有不少问题。 引子 无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或 make原创 2009-05-07 16:25:00 · 2667 阅读 · 0 评论 -
fedora 7 下卸载软件
Linux 中如何卸载已安装的软件. Linux软件的安装和卸载一直是困扰许多新用户的难题。在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的“添加/删除程序” 来实现。与其相类似,在Linux下有一个功能强大的软件安装卸载工具,名为RPM。它可以用来建立、安装、查询、更新、卸载软件。该工具是在命令行下使用的。在Shell的提示符后输入rpm,就可获得该命令的帮助信原创 2009-04-27 22:11:00 · 1736 阅读 · 2 评论 -
Linux USB驱动框架分析(转)
Linux USB驱动框架分析(一) 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了。好,言归正传,我说一说这段时间的收获,跟大家分享一下Linux的驱动开发。但这次只先针对Linux的USB子系统作分析,因为周五研讨老板催货。当然,还会顺带提一下其他的驱动程序写法。 事实上,Linux的原创 2009-02-13 20:28:00 · 693 阅读 · 0 评论 -
nfs文件系统不能进行写操作
今天看到leeming在sep4020的板子上挂nfs网络文件系统,能挂起来,但要创建一个文件夹却报错# mkdir zlmnfs: Read-only file system 最后查出来发现是/etc/export文件写错了/nfs 192.168.0.2 (rw,sync,no_root_squash)红色部分中间多了一个空格,去掉空格,就OK了,呵呵原创 2009-02-19 16:41:00 · 945 阅读 · 1 评论 -
移植MiniGUI的调试记录
将minigui移植到目标上:1,复制libc,ld等工具到/lib中;2,复制库文件将库文件拷贝到/lib下,资源文件到/lib/minigui下,修改/usr/local/etc/Minigui.cfg将所有/usr/local/lib 替换成/lib3,建立mknod fb c 29 0/dev/input下建mknod mice c 13 63Tslib交叉编译环境问题心得 Q1:在原创 2009-02-19 08:53:00 · 2403 阅读 · 0 评论 -
函数指针的妙用
今天上www.armfans.net网站上浏览帖子的时候,看到一个很好玩且非常有学习意义的帖子,将的是c中函数指针的妙用,现将内容转录如下一小段精彩的 C语言,1和2实现相同的功能,欢迎大伙跟帖呵(特别感谢trio老师)1 void (*theUboot)(void); 。。。。 theUboot = (void (*)(void))(0x30700000); *th原创 2009-02-22 21:32:00 · 1527 阅读 · 1 评论 -
typeof在linux中妙用
今天偶然又看到了typeof这个东西,只知道它大概是返回变量的类型,后来上网查了下发现这个关键字在linux中用的非常多, 这里大概叙述了typeof是一个什么东西,怎么用,实际上可以用简单的话来重述。如果你对sizeof很熟悉的话,那么大可进行类推,sizeof(exp.)返回的是exp.的数据类型大小,那么typeof(exp.)返回的就是exp.的数据类型。值得注意的是在上面的话里我们可以看原创 2009-02-23 16:02:00 · 8693 阅读 · 7 评论 -
字符编码笔记:ASCII,Unicode和UTF-8(转)
今天中午,打印机的中文老打不出来,估计是编码转换不对,于是先上网查了两篇资料,转载在此:Unicode和UTF-8之间的关系:1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态原创 2009-03-03 14:05:00 · 1230 阅读 · 0 评论 -
Linux下转换字符集(UTF8转换)(转)
在LINUX上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用iconv命令来实现,只不过后者是针对文件的,即将指定文件从一种编码转换为另一种编码。一、利用iconv函数族进行编码转换iconv函数族的头文件是iconv.h,使用前需包含之。#include iconv函数族有三个函数,原型如下:(1) iconv_t iconv_open(const char *tocode,原创 2009-03-03 14:14:00 · 3491 阅读 · 0 评论 -
SEP4020的USB DEVICE 在linux下驱动的实现(1)
今天是3月31号,这个月的主要收获是编写了一个热敏打印机驱动和4020的usb device的驱动,热敏打印机驱动倒没什么难度就是一个简单的字符型设备,三下五去二就把它给干掉了,但usb gadget的驱动本来以为也不会太难,但最后老是出现问题一大堆,大概从3月8号开始弄一直到3月27号才弄的差不多,花了三周时间,学到的东西也不少从c语言本身到usb的协议到scsi硬盘协议这些都一路趟过来,下面稍原创 2009-03-31 20:05:00 · 967 阅读 · 1 评论 -
Linux的时间
好久没管理博客了,上次打开博客速度太慢,都不想用博客了,今天上去发现登陆速度很快,很欣慰啊。今天看了下Linux时钟的概念,现在总算对Linux时钟算是比较懂了。通常,操作系统可以使用三种方法来表示系统的当前时间与日期:①最简单的一种方法就是直接用一个64位的计数器来对时钟滴答进行计数。②第二种方法就是用一个32位计数器来对秒进行计数,同时还用一个32位的辅助计数器对时钟滴答原创 2009-04-22 15:19:00 · 735 阅读 · 0 评论 -
Linux任务切换代码(switch_to)详解
Copyright 2009 (c) benzus以下代码来自Linux-1.0内核 include/linux/sched.h 文件。(注意到Linux 0.11版的内核基本上也同样是这段代码,所以本文也同样适用于0.11内核)01 #define switch_to(n) { / 02 struct (long a,b;} __tmp; / 03 __asm__("cm原创 2009-04-22 16:01:00 · 3672 阅读 · 15 评论 -
内核处理资源竞争的方法
为什么Linux 内核里面很多代码为了处理race condition(竞争条件),都加上了诸如cli sti这样的开关中断指令,这个问题貌似很不值得一提。在wait_on_buffer函数(如下代码所示)中,开关中断仅仅就是为了避免竞争条件和中断对临界代码的干扰?static _inline void wait_on_buffer(struct buffer_head * bh){原创 2009-04-22 15:44:00 · 701 阅读 · 0 评论