uboot的mtd功能支持
摘要:一、概述1、MTD MTD是Flash的一种管理方法,将Flash划分成几个分区,便于管理。 u-boot的MTD功能是在文件cmd_jffs2.c中实现的,由此我们可以知道怎样打开u-boot的MTD功能。2、MTD的作用 (1)对Flash构建了分区表,从而能够启动linux系统 (2)nand命令可以使用宏参数,例如“nand read.jffs2 0x30007FC0 kernel;”命令中的kernel,kernel参数 代表了内核分区的加载地址和大小。二、移植 整个操作都是对TQ2440.h的修改。1、使能MTD功能、定义MTD分区表/* * config mtd...
阅读全文
posted @
2014-03-31 21:21
amanlikethis
阅读(3383)
推荐(0) 编辑
ARM920T系统总线时序分析
摘要:一、系统总线时序图二、分析第一个时钟周期开始,系统地址总线给出需要访问的存储空间地址。经过Tacs时间后,片选信号也相应给出,并且锁存当前地址线上地址信息。再经过Tcso时间后,处理器给出当前操作是读(nOE为低)还是写(new为低)。在Tacc时间内将数据数据准备好放之总线上,Tacc时间后(并查...
阅读全文
posted @
2014-03-28 15:58
amanlikethis
阅读(622)
推荐(0) 编辑
NorFlash
摘要:一、NorFlash概述 1、NorFlash Intel于1988年首先开发出NOR Flash 技术,彻底改变了原先由EPROM(Erasable Programmable Read-Only-Memory电可编程序只读存储器)和EEPROM(电可擦只读存储器Electrically Erasa
阅读全文
posted @
2014-03-27 09:50
amanlikethis
阅读(3097)
推荐(0) 编辑
编译u-boot命令和u-boot常用命令
摘要:一、编译u-boot命令1、配置开发板#make TQ2440_config2、编译#make all3、交叉编译器是crosstools_3.4.5_softfloat” 使用4.3.3版本的会出现问题。 编译linux内核用的是4.3.3版本的,否则也会出问题。二、u-boot常用命令1、help 命令2、下载命令(1)tftpboot [loadaddr] [bootfilename] 从tftp服务器上下载文件(2)usbslave 1 [loadaddr] 借助DNW下载文件3、内存操作命令 md 显示内存 .b 以字节显示 .w 以字显示4、NorFlash操作命...
阅读全文
posted @
2014-03-21 11:14
amanlikethis
阅读(584)
推荐(0) 编辑
uboot启动linux的过程
摘要:一、概述 linux内核镜像常见到的有两种形式,zImage和uImage。这两种文件的格式稍有差别,所以启动这两种格式的内核镜像也会有所不同。目前,uboot只支持启动uImage类型的镜像,对zImage还不支持(但是可以移植,TQ2440就是这样做的)。 二、uImage和zImage 1、z
阅读全文
posted @
2014-03-20 20:50
amanlikethis
阅读(8358)
推荐(0) 编辑
debug(fmt,args...)调试
摘要:1、定义宏(debug.h)#ifndef __DEBUG__H#define __DEBUG__H#include #ifdef DEBUG#define debug(fmt,args...) printf (fmt ,##args)#else#define debug(fmt,arg...
阅读全文
posted @
2014-03-19 21:29
amanlikethis
阅读(2889)
推荐(1) 编辑
APCS
摘要:arm汇编程序中,R0,R1,R2,R3,R12都是作为中间寄存器,而R4-R11是不能随便使用的,暂时我还不知它们的用途。所以,中间寄存器,在程序运行的开始处与结束的时候值是可以不一样的,也就是说中间寄存器只起到中间的保存作用,所以没必要全局保存。 但是用C语言写的函数可以看到R4-R11在开始处与结束处的值是一样的。倘若C语言的函数中用到了中间变量太多,需要用到R4-R11中的某几个,这时它会在进入函数时把用到的寄存器保存到堆栈中,在结束的时候弹出。 中断程序与普通的函数不一样。中断程序的断点是不确定的,这个时候需要将中间寄存器也保存起来,这样才能在回到断点后能继续正常执行。
阅读全文
posted @
2014-03-19 11:21
amanlikethis
阅读(294)
推荐(0) 编辑
用typedef给结构体一个别名
摘要:转:typedef一、用typedef给结构体一个别名typedef struct tagMyStruct{ int iNum; long lLength;} MyStruct;这语句实际上完成两个操作:1、 定义一个新的结构类型struct tagMyStruct{ int iNum; long lLength; };分析:tagMyStruct称为“tag”,即“标签”,实际上是一个临时名字,struct 关键字和tagMyStruct一起,构成了这个结构类型,不论是否有typedef,这个结构都存在。我们可以用struct tagMyStruct varName来定义变量,但要注意...
阅读全文
posted @
2014-03-19 10:48
amanlikethis
阅读(1964)
推荐(0) 编辑
typedef与define
摘要:一、typedef用法 typedef常用来定义一个标识符及关键字的别名,它生效是在语言编译过程,但它并不实际分配内存空间。typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”的缺点。举例如下:a、先声明一个类型 typedef (int*) pINT;b、使用这个类型pINT a; 在编译的时候,定义了一个指向整型变量的指针。二、define的用法 “#define”为宏定义语句,它在预编译时将所定义的语句展开。举例如下:a、先定义一个宏#define pINT int *b、使用这个宏pINT a; 在预编译阶段,将宏展开为“int *”,在编...
阅读全文
posted @
2014-03-19 10:38
amanlikethis
阅读(528)
推荐(0) 编辑
实现windows和linux的NFS交互
摘要:说明:本文是Omni-NFS-X Windows与Linux间通讯的另一种方式 和在windows中配置使用NFS客户端的杂交篇概述 windows/winnt4.0/win2000与Linux/FreeBSD/UNIX like之间的通信一般最好的方法,也是我们最容易接受的方试是“网上邻居”。目前能做到这一点的最好的程序是Samba服务器,但Samba不一定能满足所有用户的要求,有没有其它的通讯方试可选呢? 我们知道Linux,FreeBSD,UNIX like之间通讯使用较广的是NFS(Network File System),网络文件系统,是分布式计算机系统的一个组成部分,实现在异种..
阅读全文
posted @
2014-03-18 20:51
amanlikethis
阅读(2685)
推荐(0) 编辑
linux下配置NFS服务器
摘要:(声明:本文大部分文字摘自Linux NFS服务器的安装与配置)一、NFS简介 NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程...
阅读全文
posted @
2014-03-18 20:11
amanlikethis
阅读(732)
推荐(0) 编辑
虚拟机下linux上网
摘要:一、概述 1、 常见的上网方式 有以下两种: 桥接 NAT(推荐) 有关虚拟机几种不同联网方式的讲述,可以参考VMware网络选项分析 通常的配置步骤: <1> 配置PC端 <2> 配置linux端 2、本文实验环境 PC:windos XP 虚拟机:VMware 6.5 linux: ubuntu
阅读全文
posted @
2014-03-18 10:38
amanlikethis
阅读(826)
推荐(0) 编辑
ubuntu网络设置
摘要:一、概述 Ubuntu网络设置有三种方法: 命令行模式(暂时有效,重启后可能无效) 配置文件模式(重启后仍然有效) 图形界面模式 设计到的文件: /etc/network/interfaces,这里是IP、网关、掩码等的一些配置; /etc/resolv.conf这个文件保存DNS的有关信息; 二、
阅读全文
posted @
2014-03-17 21:39
amanlikethis
阅读(10221)
推荐(0) 编辑
resolvconf: Error: /etc/resolv.conf isn't a symlink, not doing anything.
摘要:一、问题出现的原因 resolv.conf默认是个软链接,resolvconf默认会检查resolv.conf不是软链接就报错 默认的情况是这样的:#ls -l /etc/resolv.conflrwxrwxrwx 1 root root 29 5月 17 17:05 /etc/resolv.conf -> ../run/resolvconf/resolv.conf二、解决办法#dpkg-reconfigure resolvconf 执行这个命令后,自动回创建连接文件。参考帖子:http://bbs.csdn.net/topics/390056351
阅读全文
posted @
2014-03-17 20:54
amanlikethis
阅读(1216)
推荐(0) 编辑
ubuntu修改主机名称
摘要:一、为何要修改主机名称 在安装Ubuntu时,一不小心主机名称输入的“too long”了,导致命令行上就提示符占据了一行的1/3,迫使我产生修改主机名称的冲动。二、操作方法 原理:系统启动时,会从/etc/hostname来读取主机的名称 方法:打开/etc/hostname这个文件,然后编辑保存即可。
阅读全文
posted @
2014-03-17 19:41
amanlikethis
阅读(181)
推荐(0) 编辑
如何让ubuntu启动时打印字符信息----字符启动
摘要:一、概述 要想实现字符启动,需要修改grub.cfg(启动配置文件),将“静态启动”改为“字符启动”。 但是grub.cfg通常只作为只读文件,修改它时实际上修改的是其他的文件然后再通过update-grub命令更新到此文件上。二、相关文件说明1、/boot/grub/grub.cfg grub.c...
阅读全文
posted @
2014-03-17 19:14
amanlikethis
阅读(2189)
推荐(0) 编辑
linux制作文件系统
摘要:1、获取文件系统源码并解压 这里使用的源码是天嵌提供的“root_qtopia_2.2.0_2.6.30.4_20100601.tar.bz2”#tarxvfroot_qtopia_2.2.0_2.6.30.4_20100601.tar.bz2-C/ 解压后的文件夹是/opt/EmbedSky/root_qtopia_2.2.0_2.6.30.42、制作文件系统 先进入/opt/EmbedSky/目录下#cd/opt/EmbedSky/ 然后制作文件系统#mkyaffs2imageroot_qtopia_2.2.0_2.6.30.4root_2.6.30.4.bin 这样以后,在/opt/Em
阅读全文
posted @
2014-03-17 11:19
amanlikethis
阅读(320)
推荐(0) 编辑
linux下安装busybox
摘要:1、获取busybox源码并解压,这里使用天嵌提供的“busybox-1.16.0.tar.bz2” #tar xvf busybox-1.16.0.tar.bz2 -C / 解压的目的地址实际上是:/opt/EmbedSky/busybox-1.16.0 2、配置busybox #make men
阅读全文
posted @
2014-03-17 10:20
amanlikethis
阅读(1747)
推荐(0) 编辑
linux下删除内核
摘要:一、概述 笔者的Ubuntu系统刚安装成功后,就不知道怎么会有多个内核,但实际上默认运行的只有一个。在grub启动界面多余的启动项和多余内核占用的存储空间迫使我产生了铲除多余内核的冲动。 最近,自己从官网上下载了一个比Ubuntu当前内核新的内核源码,编译并成功安装启动。但是,不曾想自己的VMware-tools因此不能使用。我担心之前的其他软件也会受到连累,加之本身做这个动作就是为了测试并非真的要用新内核。最后决定还是换做原来版本的内核启动,而将这个新版本删除。二、命令方式删除旧内核摘自其他网页 首先就是使用如下命令,列出所有安装的内核,下表中,带有image的就是内核文件。从中选择要卸载.
阅读全文
posted @
2014-03-13 18:54
amanlikethis
阅读(7995)
推荐(0) 编辑
linux创建交换分区
摘要:一、SWAP 概述 当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。二、SWAP管理 2.1 查看内存使用[root@dave ~]# free -m total used free shared buffers cachedMem: 1954 ...
阅读全文
posted @
2014-03-11 19:33
amanlikethis
阅读(2471)
推荐(0) 编辑
Ubuntu启动错误Checking Battery State的处理
摘要:一、问题描述二、处理方法方法一:按下 ctrl + alt + F1,进入终端,使用管理员权限执行下列代码sudo rm /etc/X11/xorg.confsudo reboot方法二:ctrl + alt + F1,进入终端,用用户名和密码登陆以管理员身份运行:sudo apt-get install gdmsudo dpkg-reconfigure gdm 重新选择登录界面模式,从GDM到LightDM,选lightdm模式,重启。方法三:ctrl + alt + F1,进入终端,用用户名和密码登陆startx 此方法能成功登陆到桌面模式,但是只有效一次,并没有真正解决这个问题。参考网页
阅读全文
posted @
2014-03-11 19:11
amanlikethis
阅读(548)
推荐(0) 编辑
linux磁盘管理
摘要:摘自:Linux磁盘管理一、查看命令1、df 查看已挂载磁盘的总容量、使用容量、剩余容量等,可以不加任何参数,默认是按k为单位显示的常用参数有:-i 使用inodes 显示结果-h 使用合适的单位显示,例如G-k -m 分别为使用K,M为单位显示2、du 用来查看某个目录所占空间大小语法:du [-abckmsh] [文件或者目录名] 常用的参数有:-a 全部文件与目录大小都列出来。如果不加任何选项和参数只列出目录(包含子目录)大小-b 列出的值以bytes为单位输出,默认是以Kbytes-c 最后加总-k 以KB为单位输出-m 以MB为单位输出-s 只列出总和-h 系统自动调节单位,例...
阅读全文
posted @
2014-03-11 19:01
amanlikethis
阅读(392)
推荐(0) 编辑
Ubuntu系统启动错误问题的解决
摘要:一、hub_port_status failed (err=-110)1、问题产生的原因 笔者不知道出现这种错误是不是都是相同的原因,但是我的系统出现这种原因是由于:1、更改了虚拟硬盘的大小和/etc/fstab2、我删除了系统的交换分区所导致的 很惭愧,我对出现这种问题的确切原因还是不清楚的。 但是,根据问题的英文名称,我猜测主要原因可能是我错误的修改了/etc/fstab。2、问题的解决办法1、确保更改虚拟磁盘大小成功,请见修改虚拟机linux硬盘的大小,关键是正确修改/etc/fstab。2、重建交换分区,请见linux创建交换分区。这一步也需要修改/etc/fstab。二、the...
阅读全文
posted @
2014-03-11 18:26
amanlikethis
阅读(2595)
推荐(0) 编辑
修改虚拟机linux硬盘的大小
摘要:一、概述 Ubuntu用了一段时间,系统已从原来的4G增长到8G,导致虚拟磁盘不够用,需要修改虚拟硬盘的大小。 但是,修改虚拟机硬盘的大小不像修改内存那么简单,操作一个滑动条就轻松搞定。要知道虚拟硬盘需要从windows系统申请,这是需要一些硬盘分割的工作。内存却是比较简单的,直接从windows的内存区中抽出一块就OK了。 修改虚拟机linux硬盘的大小的流程与windows磁盘分区类似,需要经过这么几个步骤:1> 获取虚拟机需要的磁盘空间 可以这么做:在windows下使用VMware提供的硬盘调整工具vmware-vdiskmanager.exe重现定义虚拟硬盘的大小。 也可以这.
阅读全文
posted @
2014-03-10 21:17
amanlikethis
阅读(14848)
推荐(0) 编辑
运行在TQ2440开发板上以及X86平台上的linux内核编译
摘要:一、运行在TQ2440开发板上的linux内核编译1、获取源码并解压 直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源码包。 解压(天嵌默认解压到/opt/EmbedSky/linux-2.6.30.4/中)tar xvjf linux-2.6.30.4_...
阅读全文
posted @
2014-03-10 16:10
amanlikethis
阅读(815)
推荐(0) 编辑
编译内核出错:invalid option `abi=aapcs-linux' 解决办法
摘要:出现此问题的原因是由于kernel feature中选中了Use the ARM EABIto compile the kernel引起的,有两各解决办法:1)换编译器为arm-linux-gcc version 4.3.32)去掉内核中的Kernel Features->Use the ARM...
阅读全文
posted @
2014-03-10 14:19
amanlikethis
阅读(646)
推荐(0) 编辑
Unable to find the ncurses libraries or the required header files解决
摘要:问题:解决方法:sudo apt-get install ncurses-dev参考:Unable to find the ncurses libraries or the required header files解决
阅读全文
posted @
2014-03-10 11:12
amanlikethis
阅读(278)
推荐(0) 编辑
在电源的输入端串一个二极管的作用是什么?
摘要:摘于网页:http://www.dzsc.com/dzbbs/20061204/20076521148781426.html解释一:抗干扰隔离1、如果+5V还供给其他的地方,增加一个二极管隔离,会减小后级电源对前级的影响。2、如果后级电流比较大,而且不稳定,C5耦合电容不够用的时候,后级就会从串联回路其他电容取电,影响其他电路,增加二极管可避免。3、负电流影响,如果其他回路电流很大,其耦合电容不够就会从C5取电,这样电流在峰峰值很大的时候就会出现回路负电流,增加二极管可避免。4、如果散热面积很小,增加此二极管可减少部分热量问题。实际上,此二极管在很多时候可以不要的。解释二:1、防止反接2、防止
阅读全文
posted @
2014-03-03 20:13
amanlikethis
阅读(4174)
推荐(0) 编辑