嵌入式linux
文章平均质量分 63
yuhaibin168
这个作者很懒,什么都没留下…
展开
-
在Linux的PC上挂载jffs2根文件系统映像
转载:我们在调试硬件板时,经常需要做多个jffs2的根文件系统映像,有时也要对比其他途径得到的可用的jffs2根文件系统映像。但jffs2的文件系统映像不象光盘的映像文件一样可以通过loop设备来挂载,总不可能一个个烧录到硬件板去看吧。 后来到网上google了一把,左翻右翻之后总算找到了一个方法。因为jffs2是构建于MTD设备上的文件系统,所以无法通过loop设备来挂载,但是可以转载 2012-04-11 22:35:12 · 812 阅读 · 0 评论 -
busybox移植和文件系统建立
最近学习自己建立文件系统,遇到很多问题,同一个方法并不是对每个人都可用的,下面把我移植的过程记录下来,希望对大家有所帮助。 其中主要涉及到的主要部分: 1,文件系统启动过程分析 2,busybox移植 3,文件系统建立和使用mdev创建设备文件 开发环境:ubuntu系统,busy原创 2012-11-17 20:38:51 · 1034 阅读 · 0 评论 -
uboot使用bootm启动内核详解
uboot使用bootm命令启动内核的过程一直有点迷糊,今天找了几篇文章好好看了下,整理一下,其中参考了http://linux.chinaunix.net/techdoc/system/2007/10/17/970086.shtml这一篇文章。 1,首先bootm主要是对内存(ram)中的数据进行引导,并且只起到引导的作用。你需要提前将uboot下载到指定位置,可以使用tftp,原创 2012-12-23 16:06:22 · 6656 阅读 · 0 评论 -
Linux 内核启动分析
Linux 内核启动分析1. 内核启动地址1.1. 名词解释ZTEXTADDR解压代码运行的开始地址。没有物理地址和虚拟地址之分,因为此时MMU处于关闭状态。这个地址不一定时RAM的地址,可以是支持读写寻址的flash等存储中介。Start address of decompressor. here's no point in talking about vi转载 2013-01-04 16:30:13 · 1173 阅读 · 0 评论 -
Linux NFS启动出现出现错误TFTP error: 'Access violation' 的解决办法
今天想用nfs启动内核,按照我原来那篇文章修改,将uboot设好后,结果出现TFTP error: 'Access violation' 这个错误。最后检查原来是放内核的目录,没有设为tftp目录,于是我将内核的uImage直接放在tftpboot这个目录下面,顺便将文件夹tftpboot权限修改一下chmod 777 tftpboot 也可以编辑这个文件,将tftpboot修改为自己的t原创 2012-12-21 18:27:49 · 2216 阅读 · 0 评论 -
error:unknown field 'ioctl' specified in initializer
在linux-2.6.36内核上加载编译驱动时,出现 error:unknown field 'ioctl' specified in initializer原因是:在2.6.36内核上file_operations发生了重大的改变:原先的 int (*ioctl)(struct inode*, struct file*, unsigned int, unsign转载 2013-01-23 16:34:51 · 635 阅读 · 0 评论 -
ubuntu nfs配置 以及mount.nfs:access denied by server while mounting问题解决
ubuntu nfs配置 以及mount.nfs:access denied by server while mounting问题解决1.安装nfs服务,$ apt-get install nfs-common nfs-kernel-server2.配置参数:$ gedit /etc/exports ,内容如下: # /etc/exports: the access转载 2013-01-23 16:38:53 · 9978 阅读 · 0 评论 -
error: stray ‘\357’ in program
error: stray ‘\357’ in programerror: stray ‘\357’ in programerror: stray ‘\274’ in programerror: stray ‘\233’ in program 出现此类错误的原因,在编辑器中使用的utf-8的格式保存源代码中出现了中文的标点符号转载 2013-01-28 20:19:32 · 44869 阅读 · 1 评论 -
imx53的nfs启动内核和文件系统
最近一直研究imx53的nfs启动,今天终于搞出来了,结果csdn又不能写博客了,这几天一直被这个问题困扰着,上网搜了好多资料,但都是给出了一系列的代码,问题是针对每一种开发板的设置还不一样,整的自己晕晕乎乎的,不知道用哪一种方法。今天把网上的方法整理了一下,终于把nfs启动搞定了,下面废话不多说,说说我的过程吧虚拟机中的设置: 1)在虚拟机中的ubuntu下面的mnt原创 2012-05-02 22:58:28 · 2033 阅读 · 2 评论 -
宏开关控制调试信息
最近调试驱动,想把调试信息注册掉,一条一条删除或者添加挺麻烦,于是想加上调试信息开关,下面是搜罗的方法。#define __DEBUG__ //宏开关#ifdef __DEBUG__ //我的方法#define DebugMessagePrint printk#else#define DebugMessagePrint /\原创 2013-01-22 14:36:30 · 4296 阅读 · 0 评论 -
warning 'XXX' declared 'static' but never defined解决方法
分类: 开源开发 C语言中的static一直都是比较头疼的问题,但是高质量的C 程序往往都将static用的非常精妙。 今天在程序使用static的时候遇到一个问题,定义一个局部可见的程序的时候使用了static,在头文件声明后产生了“warning 'XXX' declared 'static' but never defined”的警告。转载 2013-03-20 11:19:23 · 1205 阅读 · 0 评论 -
YUVTools 破解方法
yuv破解方法收藏,转自别人博客!收藏!!! 好用的方法:YUVTools用来查看yuv 图片非常好用,但是试用三十天后就无法正常使用,重新安装也不行今天找到个非常暴力,弱智的破解方法:我是在ubuntu下使用wine运行YUVTools的直接把~/username/.wine强行删除,再执行wine YUVtools.exe重新生成wine运行环境即原创 2012-08-30 15:52:51 · 6219 阅读 · 1 评论 -
Linux下简易web服务器实现
今天突然对http的web服务器感兴趣了,就研究了一下,发现linux下的web服务器就是一个socket编程的服务器端,而我们用的ie,chrome等浏览器就是客户端,只不过发送和接收数据按照http网页格式,就相当于对数据进行了封装,相当于加上了文件头和文件尾等一些规定的东西罢了。下面有一个简单的web服务器程序,网上找的,用了,感觉不错,分享一下。当今很多http协议的服务器已经成熟化比如a原创 2013-05-12 22:14:20 · 1298 阅读 · 1 评论 -
web服务器---HTTP工作原理
HTTP工作过程HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。下图表明了这种请求/响应模型。转载 2013-05-12 21:32:22 · 947 阅读 · 0 评论 -
fcntl函数使用(收藏)
功能:获取或者修改文件描述符的状态标志表头文件 #include #include #include fcntl.h>编辑本段函数类型 定义函数 int fcntl(int fd , int cmd,...); 函数是变参函数,根据cmd来判断第三个参数,参见printf的运用编辑本段参数介绍原创 2012-11-29 10:50:25 · 608 阅读 · 0 评论 -
Linux开启FTP(vsftpd)服务
Linux开启FTP(vsftpd)服务 1. 查看是否安装 # rpm -qa | grep vsftpd 2. 全新安装 # rpm -ivh vsftpd-2.0.1-5.i386.rpm 3. 启动/停止/重启 (主要就这三个命令!!!!!)# service vsftpd start # service vsftpd stop #原创 2012-11-07 15:43:39 · 598 阅读 · 0 评论 -
linux 重命名文件和文件夹
闪存管理随笔- 606 文章- 7 评论- 49 linux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹.例子:将目录A重命名为Bmv A B例子:将/a目录移动到/b下,并重命名为cmv /a /b/c 其实在文本模式中要重命名文件或目录的话也是很简单的,我们只需要使用mv命转载 2012-10-18 21:40:37 · 564 阅读 · 0 评论 -
Tiny6410 我的第一个嵌入式Linux驱动程序模块
[日期:2012-01-22]来源:Linux社区 作者:guozhiyuan研究了好久模块驱动的安装方法,今天终于做出来东西了,纪念一下!第一步:编译配置linux-2.6.36/drivers/char/Kconfig文件。比如我要配置一个模块config guozhiyuan tristate "guozhiyuan sampl转载 2012-04-12 23:17:21 · 639 阅读 · 0 评论 -
虚拟机中设置ubuntu为静态ip
最近做imx53的nfs启动,成功了,但是一重启ip地址变了,必须修改为静态的,研究了一天,虚拟机中的nat方式对应的为vmware网卡8,hostonly对应网卡1,但是这两种的ip段和主机的不是一个,这样只能使用桥接方式了,在虚拟机设置网络连接方式为桥接,然后就是在ubuntu中设置静态ip了修改Ubuntu的网络配置: 1) 设置IP、网关、掩码等。gedit /etc/n原创 2012-05-01 11:00:18 · 4531 阅读 · 3 评论 -
【分享】分析uboot是如何启动内核的
1.uboot启动内核的代码缩减如下:s = getenv ("bootcmd");debug ("### main_loop: bootcmd=\"%s\"\n", s ? s : "");if (bootdelay >= 0 && s && !abortboot (bootdelay)){ run_command (s, 0);}2.假设bootc转载 2012-04-17 15:54:31 · 535 阅读 · 0 评论 -
【分享】分析内核的配置与编译过程
对内核的操作分为两类:一.配置内核二.编译内核一.配置内核的过程如下:make menuconfig时可以修改配置项,这主要是Kconfig的功能,然后最终的配置结果会保存在.config文件中。下次再执行make menuconfig时回去读取这个文件。这是内核配置的过程。二.编译内核的过程(即make uImage的过程)如下:1.查看内核配置文件.co转载 2012-04-17 16:51:22 · 1762 阅读 · 0 评论 -
【分享】分析busybox中init程序的运行过程
.管理提醒: 本帖被 kasim 执行置顶操作(2011-11-07) 移植uboot的目的是启动内核,启动内核的目的是运行应用程序,从内核的启动流程中可以知道内核启动的第一个应用程序就是busybox里的/sbin/init进程!但是我们的最终目的不是启动init进程,而是运行客户的程序!那么init进程是如何选择性的运行客户的程序呢?我们猜测init进程肯定转载 2012-04-17 16:52:47 · 2199 阅读 · 0 评论 -
down_interruptible函数和down函数的问题
中断发生以后,CPU跳到内核设置好的中断处理代码中去,由这部分内核代码来处理中断。这个处理过程中的上下文就是中断上下文。为什么可能导致睡眠的函数都不能在中断上下文中使用呢? 首先睡眠的含义是将进程置于“睡眠”状态,在这个状态的进程不能被调度执行。然后,在一定的时机,这个进程可能会被重新置为“运行”状态,从而可能被调度执行。 可见,“睡眠”与“运行”是针对进程而言的,代表进程的task_st原创 2012-06-11 21:35:54 · 2704 阅读 · 1 评论 -
linux2.6.35动态创建节点的变化总结
最近做linux驱动,遇到了个问题,由于linux版本变化太快和资料更新慢,有些函数发生变化,其中udev动态创建设备节点的函数也发生变化 在linux2.6某个版本之后 devfs不复存在,udev成为devfs的替代,可以用udev在/dev/下动态生成设备文件,其中2.6之后不同版本创建函数也不同, 在linux2.6.13之前的是原创 2012-06-13 20:57:40 · 1172 阅读 · 0 评论 -
ISO C90 forbids mixed declarations and code 警告
通过字面意思可以理解,ISO C90 禁止将声明和代码混合,就是说要先声明,在用你在函数开头这样写就会报错。int t;t=0;int r;如果这样写就不会int t,r;t=0;一般可以不理它。原创 2012-07-04 09:09:29 · 17330 阅读 · 0 评论 -
error: unknown field 'ioctl' specified in initializer问题
error: unknown field 'ioctl' specified in initializer问题是由于2.6.36内核之后 去掉了原来的ioctl,添加两个新的成员,所以会出错long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); long (*compat_ioctl) (struct fil原创 2012-07-03 14:56:39 · 7209 阅读 · 1 评论 -
Tiny6410 JTAG调试终于搞定
去年买了Jlink V8仿真器,想学习调试tiny6410的裸机程序,最后由于tiny6410的设计缺陷一直没成功连接,还差点把开发板整坏了,今天终于搞定了,总结一下我的开发板核心板是tiny6410 1107,网上很多人都说已经改进,其实是没有改进的,需要自己把r31的电阻焊到r37位置上,就是讲那个DEGSEL引脚拉低:原创 2012-07-24 21:04:24 · 3944 阅读 · 1 评论 -
制作ramdisk的内核文档翻译
翻译linux-2.6.16.9/Documentation/ramdisk.txt原作:Paul Gortmaker翻译:LL在linux中使用RAM disk块设备-------------------------------------目录: 1)概述 2)内核命令行参数 3)使用“rdev -r"命令翻译 2012-10-07 18:27:59 · 701 阅读 · 0 评论 -
I.MX53的gpio.c分析
对于imx53中的gpio操作一直概念不清楚,最近火大,直接把gpio.c注释一下,该代码位于arch\arm\plat-mxc\gpio.c中对于gpio的读写操作网上有一篇关于imx51的介绍已经很不错了,这里我的重点是gpio的中断,尤其是中断共享一、mx53/mx51 GPIO 操作原理(一)GPIO 寄存器每组GPIO有8个寄存器:1. DR: Data Regist原创 2012-10-11 22:07:00 · 3424 阅读 · 0 评论 -
网络相关配置文件介绍
网络相关配置文件介绍2.1 /etc/hosts包含(本地网络中)已知主机的一个列表。如果系统的 IP 不是动态获取,就可以使用它。对于简单的主机名解析(点分表示法),在请求 DNS 或 NIS 网络名称服务器之前,/etc/hosts.conf 通常会告诉解析程序先查看这里。文件格式:ip地址 主机名 别名$ cat转载 2012-10-17 16:37:30 · 851 阅读 · 0 评论 -
i.mx53 GPIO中断配置
最近在使用imx53中断,由于gpio口为共享中断,所以在使用的时候一些概念不清楚,比如request_irq();中的中断号为硬件中断号还是gpio_to_irq获取的中断号,并且在imx53中每一组gpio对应两个中断号,比如gpio2对应的硬件中断号为47 48,0-15引脚对应47 16-31对应48,由于linux内部机制对每一个gpio口的中断进行的处理和分配,使用的gpio-to原创 2012-10-17 16:44:32 · 3531 阅读 · 3 评论 -
/bin/bash^M: 坏的解释器: 没有那个文件或目录
编写shell脚本时,我们经常习惯在windows下写好,然后通过共享目录拷到linux下,方便快捷。杯具的事也来了,当我们在windows写一个shell程序拷到linux中,修改好权限,正准备试下效果时,/bin/bash^M: 坏的解释器: 没有那个文件或目录坏的解释器: 没有那个文件或目录" title="/bin/bash^M: 坏的解释器: 没有那个文件或目录" style转载 2014-02-16 20:15:20 · 1369 阅读 · 0 评论