嵌入式linux
文章平均质量分 55
myleeming
相信技术能让世界变得更美好!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一个简单的linux系统下的5*5的键盘驱动
昨天花了点时间为了SEP4020评估版(基于ARM720t内核)写了一个键盘驱动,键盘是一个5*5的键盘,利用5根外部中断和5根gpio口线实现行扫描键盘。5个外部中断分别为:中断1,2,3,4,5通过对gpio的portA复用得到。5根口线是gpio的portD的低5位。一下是我的代码:#include #include #include #include #include #i原创 2008-10-18 14:16:00 · 1314 阅读 · 0 评论 -
在fedora7上建立minigui的模拟开发环境
本文介绍如何在fedora7环境下建立minigui的pc模拟环境: 第一步:下载源码包并解压,主要有libminigui-1.3.3; minigui-res-1.3.3.; mde-1.3.; mg-amples-1.3.0 第二步:编译安装minigui库libminigui-1.3.3,步骤依次为:./configureMakeMake install原创 2009-03-02 17:16:00 · 1298 阅读 · 0 评论 -
minigui的价格揭秘
最近一直在使用minigui,一时兴起向飞漫软件的市场套了份minigui的价格表,放在下面,也让有意使用minigui做商用开发的朋友心中有个数:1.MiniGUI开发时授权和服务的价格购买 MiniGUI-VAR 产品,您将获得相对应版本的 MiniGUI 开发时授权。其价格如表1所示: 表 1 MiniGUI开发时授权费用价格(人民币元)原创 2009-03-07 16:17:00 · 4801 阅读 · 3 评论 -
linux的reboot实现
今天有客户问要在linux下实现重启,以前一直没有仔细思考过这个问题,阿虚今天下午查了一下是/linux/include/asm-arm/arch-sep4020中的system.h中的arch_reset函数实现的,我看了一下三星2410的代码的确如此,(我当初为我们这款芯片移植linux内核的时候属于朦胧阶段,啥都很模糊),其实代码很简单就是在这个函数里启动watchdog,并给一个数字,让w原创 2009-03-10 20:08:00 · 7494 阅读 · 1 评论 -
庆祝贴:epson72v17 usb芯片在linux下驱动移植完毕
虽然被Epson的破代码小折腾了一下,但是结果还是美好的,呵呵,至此epson 72v17芯片host ,device驱动均完毕。host能顺利挂接U盘,鼠标,键盘等设备。device能顺利将板子上的存储资源和电脑相联系。72v17移植注意点:1. 这款芯片和cpu的连接有三种方式,分别为8位,16位的XWRH/L,16位的XBEH/L模式,这要看具体cpu的接口,在我们4020的原创 2009-03-14 15:32:00 · 1262 阅读 · 0 评论 -
为你的虚拟机添加第二个硬盘!
用虚拟机经常碰到这种烦恼,刚开始设定硬盘空间的时候设小了,用了一段时间硬盘空间就不够用了,就像我今天装完了qt sdk后发现我的虚拟机可用空间是0,下面就给出如何增大你的硬盘空间的方法(以下方法的环境均为fedora7,虚拟机版本为6.0.2):1. edit你的虚拟机配置,add一个新的硬盘,具体操作为在虚拟机主界面上点击edit virtual machine settings原创 2009-03-16 13:34:00 · 1688 阅读 · 0 评论 -
王道QT,让linux的开发和在windows下一样方便
GUI是在嵌入式设备中是非常重要的一环,GUI的好坏直接影响到了用户的体验。因此一个优秀的gui是非常重要的,为此我前阶段对gui稍微做了调研。 目前通用的gui有:gtk系列:在linux下鼎鼎大名的gnome桌面就是基于gtk库设计的,当然gnome是gtk+Xwindow的方式,在嵌入式设备中的选择有gtk+DirectFB。 Qt系列:桌面应用有KDE,关于kde和gn原创 2009-03-18 14:19:00 · 2034 阅读 · 0 评论 -
深入分析 Linux 内核链表(转自ibm developerWorks 中国,IBM为开源界做了很多贡献,赞)
本文详细分析了 2.6.x 内核中链表结构的实现,并通过实例对每个链表操作接口进行了详尽的讲解。一、 链表数据结构简介链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序转载 2009-04-03 18:41:00 · 1496 阅读 · 0 评论 -
Linux项目组编程规范
前言:本手册以林锐博士编写的《高质量 C++/C 编程指南》内容为参考,根据项目组成员的经验总结和共同协定,稍作简洁和修改。本规范手册分成两部分:第一部分:以条款的形式列出了项目组编程的规则和建议,规则是指项目组成员必须要遵守的编程规范,建议是指推荐使用的编程风格。第二部分:是对第一部分规则和建议的详细说明。建议先仔细阅读第二部分,在已经了解了每条规则和建议的真正意义以及为什么要遵原创 2009-04-23 17:04:00 · 2289 阅读 · 1 评论 -
Linux下内存释放问题相关知识
细心的朋友会注意到,当你在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法.那么我来谈谈这个问题.先来说说free命令[root@server ~]# free -mtotal used free shared buffers cachedMem: 249 16转载 2009-05-12 17:44:00 · 1232 阅读 · 1 评论 -
Linux下内存释放问题相关知识续——手动释放内存的伪命题
使用Linux会发现一个很奇怪的问题:使用一段时间后(特别是经过了文件的拷贝等操作),用top指令发现内存基本上被占用了,而且Linux不会释放,这个问题的确困扰了我们,我们就开始寻找手动释放内存的方法,的确也找到了,也就产生了我的上一篇博客。上网搜索也发现很多人存在着这个问题,但是经过对网上结果和我自己理解的综合分析得出了一个结论:Linux手动释放内存是一个彻彻底底的伪命题。 首先讲解原创 2009-05-14 11:04:00 · 2256 阅读 · 2 评论 -
linux中断的unbalanced问题
首先摘一段网上的见解:The enable_irq unbalanced messages are harmless. It just means that when the driver called disable_irq there were no devices already using the irq, and as such it was already disabled, so原创 2009-06-02 11:02:00 · 4579 阅读 · 0 评论 -
minigui+tslib编译全过程(3)
第三部分:tslib和minigui的链接完成了对 tslib 的交叉编译之后,下一步的事情就是改写 MiniGUI 的 IAL 引擎。MiniGUI自带的 IAL 输入引擎中,有一个叫做 dummy.c。为了尽可能简单,在这里为简单起见就在其基础上稍作修改,使之符合我们的要求即可。#include #include #include #include #include #include "c原创 2009-02-20 10:54:00 · 2102 阅读 · 0 评论 -
fedora下的bridge和nat设置
可以利用fedora下的bridge和nat同时实现虚拟机作为网络文件系统和虚拟机上网的功能。 Nat:和主机共享ip,具体操作如下:1. 在Ethernet选项中选择nat,2. 打开终端,输入命令hostname,得到的是你的主机名字,记录下来,这个后面要用到3. 进入系统-》管理-》网络,双击eth,在常规中选择,自动获取ip地址原创 2009-02-20 10:47:00 · 1011 阅读 · 0 评论 -
关于udelay(); mdelay(); ndelay(); msleep();
这几个函数都是内核的延时函数:1.udelay(); mdelay(); ndelay();实现的原理本质上都是忙等待,ndelay和mdelay都是通过udelay衍生出来的,我们使用这些函数的实现往往会碰到编译器的警告implicit declaration of function udelay,这往往是由于头文件的使用不当造成的。在include/asm-???/delay.h中原创 2008-10-21 18:35:00 · 45404 阅读 · 5 评论 -
嵌入式linux的中断函数实现和分析
分析linux中断中常用的两个中断函数:Disable_irq(int irq)Enable_irq(int irq) 第一步:●对于关中断跟踪代码到arch/arm/kernel/irq.cvoid disable_irq(unsigned int irq){ struct irqdesc *desc = irq_desc + irq;disa原创 2008-10-20 18:24:00 · 4406 阅读 · 2 评论 -
Linux设备驱动程序学习———时间、延迟及延缓操作
度量时间差 时钟中断由系统定时硬件以周期性的间隔产生,这个间隔由内核根据 HZ 值来设定,HZ 是一个体系依赖的值,在 中定义或该文件包含的某个子平台相关文件中。作为通用的规则,即便如果知道 HZ 的值,在编程时应当不依赖这个特定值,而始终使用HZ。对于当前版本,我们应完全信任内核开发者,他们已经选择了最适合的HZ值,最好保持 HZ 的默认值。 对用户空间,内核HZ几乎完全隐藏,用户转载 2008-10-22 18:04:00 · 2918 阅读 · 3 评论 -
关linux的RTC驱动
Linux的RTC驱动相对还是比较简单的,可以将它作为一个普通的字符型设备,或者一个misc设备,也可以是一个平台设备,这都没有关系,主要还是对rtc_ops这个文件操作结构体中的成员填充,这里主要涉及到两个方面比较重要: 1. 在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linu原创 2008-11-05 17:45:00 · 6151 阅读 · 1 评论 -
关于linux的音频驱动(二)
3. 关于sep4020_audio_write函数:这个是整个驱动的核心,也是难点,牵涉了dma操作,buffer ring的思想,linux中信号量的思想。一下内容读起来会有点吃力,请好好理解代码●关于dma:对dma的操作,在这里使用了一个buffer ring的思想,这里我们来看一下建立dma缓冲环的代码来理解这种buffer ring:static原创 2008-11-17 10:20:00 · 1521 阅读 · 1 评论 -
对云计算中几种基础设施(Dynamo,Bigtable,Map/Reduce等)的朴素看法
对云计算中几种基础设施(Dynamo,Bigtable,Map/Reduce等)的朴素看法 ——康华前言云计算的概念转载 2008-11-28 17:33:00 · 1160 阅读 · 4 评论 -
linux定时器的使用以及键盘定时器解析
1. 首先定义一个定时器的结构体:static struct timer_list key_timer; 2. 在驱动的初始化中对定时器进行初始化 setup_timer(&key_timer,key_timer_handler,0);其中key_timer是我们刚刚定义的定时器结构体,key_timer_handler是我们的定时器处理函数; 3.原创 2009-02-06 10:32:00 · 1604 阅读 · 0 评论 -
打造一个perfect的linux开发环境(加入对鼠标滚轮的支持)
前记:前段时间一直用Ubuntu作为linux的开发环境,但是最近和方帅一起编译minigui的时候发现Ubuntu的不便利(经常冒出来没有一些软件,需要你安装了才能进行),而我们服务器的fedora从来没有出现过这个问题,因此一直想打造一个perfect的linux开发环境,这两天从fedora7 到fedora8,从虚拟机的6.0.2到6.5.1折腾了好久,终于基本打造一个完美版本:原创 2009-02-13 09:32:00 · 1246 阅读 · 1 评论 -
minigui+tslib编译全过程(1)
主要文档都是fp完成的,我只是在他的基础上修改了一些文章中的小错误。第一部分:minigui-1.3.3移植到SEP4020EVB详解在这里只讲怎样将minigui-1.3.3移植到开发板EVB-SEP4020上去,在pc上安装minigui-1.3.3不用讲,这里我用到的交叉编译器是arm-linux-gcc3.4.1MiniGUI 的编译需要一些库文件,缺省我们的 gcc 基本上原创 2009-02-20 10:49:00 · 2184 阅读 · 0 评论 -
minigui+tslib编译全过程(2)
第二部分:tslib-1.3.3移植到SEP4020 上次移植minigui,这次继续上次的移植,往4020上移植tslib 。大概方法是通过 tslib 来构建 MiniGUI 的输入引擎。tslib 是一个用于触摸屏设备的函数库。通过这样一个函数库,可以将编程者从繁琐的数据处理中解脱出来。为什么会出现这样的情况呢?因为触摸屏的坐标和液晶显示屏之间的坐标并不是一一对应的,所以,要让从原创 2009-02-20 10:54:00 · 2777 阅读 · 0 评论 -
基于arm架构的pppoe的终极移植笔记
也是参考了很多文章,其实当初考虑这个课题不是很复杂,因为pppoe是在操作系统上层的,可以说和处理器平台都没有关系的,因此无论是arm7(sep4020),还是arm9,都是一样的,而且已经看到网上有很多人顺利的在2440之类的arm9处理器上移植,所以后面出现的意外着实把我郁闷了一下。 先讲正确的整个移植过程:整个pppoe的移植主要分成3个部分,内核,pppd,pppoe原创 2009-06-19 20:02:00 · 4292 阅读 · 3 评论
分享