http://www.csdn.net/ http://www.arm.com/zh/ https://www.kernel.org/ http://www.linuxpk.com/ http://www.51develop.net/ http://linux.chinaitlab.com/ http://www.embeddedlinux.org.cn http://bbs.pediy.com/
发布时间:2012-12-27 16:03:47
本次移植使用的是U-boot-2009.11。 先来看看源码目录结构,再按照代码的执行顺序简单地分析源码 1.U-boot源码整体框架 源码解压以后,我们可以看到以下的文件和文件夹: cpu 与处理器相关的文件。每个子目录中都包括cpu.c和interrupt.c、start.S、u-boot.lds。 cpu.c初始化CPU、设置指令Cache和数据Cache等 interrupt.c设置系统的各种中断和异常 start.S是U-boot启动时执行的第一个文件,它主要做最早其的......【阅读全文】
发布时间:2012-12-27 15:47:16
下载与烧写 使用U-boot将映像文件烧写到板上的Flash,一般步骤是:(1)通过网络、串口、U盘、SD卡等方式将文件传输到SDRAM;(2)使用Nand Flash或Nor Flash相关的读写命令将SDRAM中的数据烧入Flash。 下面是烧写范例:如果使用 SD卡和U盘形式更新U-boot,那么首先SD卡和U盘中必须有FAT32文件系统,并在里面存放了u-boot.bin 文件。1) 通过SD卡烧入Nand Flash: [u-boot@MINI2440]# mmc init mmc: Probing for SDHC ... mmc: SD 2......【阅读全文】
发布时间:2012-12-27 15:46:46
(6) 内存/寄存器操作指令 nm 修改内存值 (指定地址) 格式: nm [.b, .w, .l] address mm 修改内存值(地址自动加一)格式: mm [.b, .w, .l] address md 显示内存值格式: md [.b, .w, .l] address [# of objects......【阅读全文】
发布时间:2012-12-27 15:45:39
(3)串口传输命令 命令:loadb - load binary file over serial line (kermit mode)loadx - load binary file over serial line (xmodem mode)loady - load binary file over serial line (ymodem mode) 功能:以不同的协议从串口获取文件.。格式基本都为:load? [ off ] [ baud ]第1个参数是下载到SDRAM的地址,如果不填,就是用默认......【阅读全文】
发布时间:2012-12-27 15:16:44
我一贯认为:对于一个技术类的东西,你连用都不会用,那根本就不可能会开发。就好像一个人连Linux不会用,那还谈何开发Linux程序呢? 同样的要开发和移植U-boot,首先要对U-boot有一定的了解,起码要会使用。 所以这里我们首先熟悉一下U-boot的使用以及如何将U-boot烧入mini2440。 当然在这之前首先必须保证你的板子上已经有了U-boot。如果没有那就先烧上一个吧。针对mini2440的U-boot-2009.11的bin文件我已经上......【阅读全文】
发布时间:2012-12-27 11:50:49
AM335x LCD Controller Driver's Guide /******************************************************************* author: 卢浩* time:  ......【阅读全文】
发布时间:2012-12-27 09:57:15
请编写一个makefile同时编译、链接下面两个程序: main1.c: #include<stdio.h> int main(void) { printf("main1\n"); } main2.c: #include<stdio.h> int main(void) { printf("main2\n"); } 【分析】:这里需要生成两个可执行文件main1和main2(两个目标)。由于makefile只能有一个目标,所以可以构造一个没有规则的终极目标a......【阅读全文】
发布时间:2012-12-27 09:54:34
要深入的学习Linux的工作机制,就必须阅读其源代码。现已最新的2.6.19内核(可以在http://www.kernel.org下载)为例,简单的介绍下Linux内核源代码目录树结构。 arch:包 含和硬件体系结构相关的代码,每种平台占一个相应的目录。和32位PC相关的代码存放在i386目录下,其中比较重要的包括kernel(内核核心部 分)、mm(内存管理)、math-emu(浮点单元仿真)、lib(硬件相关工具函数)、boot(引导程序)、pci(PCI总线)和 power(CPU相关状态)。 block:部分块设备驱动程序。 crypto:常用加密......【阅读全文】
发布时间:2012-12-26 14:14:28
.tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— .gz 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:gzip FileName .tar.gz 和 .tgz 解压:tar zxvf FileName.tar.gz 压缩:tar zcvf FileName.tar.gz DirName ——————————————— .bz2 解压1:bzip2 -d FileName.b......【阅读全文】
发布时间:2012-12-22 09:10:38
使用变量———— 在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile中执行的时候其会自动原模原样地展开在所使用的地方。其与C/C++所不同的是,你可以在Makefile中改变其值。在Makefile中,变量可以使用在“目标”,“依赖目标”,“命令”或是Makefile的其它部分中。 变量的命名字可以包含字符、数字,下划线(可以是数字开头),但不应该含有“:”、“#”、“=”或是空字符(空格、回车等)。变量是大小写敏感的,“foo”、“Foo”和“FOO”是三个不同的变量名。传统的Makefile的变量名是全大写的命名方式,但我推荐......【阅读全文】
发布时间:2012-12-22 09:10:32
书写命令———— 每条规则中的命令和操作系统Shell的命令行是一致的。make会一按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的。在命令行之间中的空格或是空行会被忽略,但是如果该空格或空行是以Tab键开头的,那么make会认为其是一个空命令。 我们在UNIX下可能会使用不同的Shell,但是make的命令默认是被“/bin/sh”——UNIX的标准Shell解释执行的。除非你特别指定一个其它的Shell。Makefile中,“#”是注释符,很像C/C++中的“//”,其后的本行字符都被注释。 一、显示命令 通常,make会......【阅读全文】
发布时间:2012-12-22 09:10:19
六、多目标 Makefile的规则中的目标可以不止一个,其支持多目标,有可能我们的多个目标同时依赖于一个文件,并且其生成的命令大体类似。于是我们就能把其合并起来。当然,多个目标的生成规则的执行命令是同一个,这可能会可我们带来麻烦,不过好在我们的可以使用一个自动化变量“$@”(关于自动化变量,将在后面讲述),这个变量表示着目前规则中所有的目标的集合,这样说可能很抽象,还是看一个例子吧。 bigoutput littleoutput : text.g &nbs......【阅读全文】
发布时间:2012-12-22 09:10:13
书写规则———— 规则包含两个部分,一个是依赖关系,一个是生成目标的方法。 在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么。一般来说,定义在Makefile中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标。如果第一条规则中的目标有很多个,那么,第一个目标会成为最终的目标。make所完成的也就是这个目标。 好了,还是让我们来看一看如何书写规则。 一、规则举例 foo.o : foo.c defs.h&nbs......【阅读全文】
发布时间:2012-12-22 09:10:07
Makefile 总述——————— 一、Makefile里有什么? Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。 1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。 2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持的。 3、变量的定义。在Makefile中我们要定义一系列的变量,变量一般都是字符串,这个有点你C语言中的宏,当Makefile被执行时,其中的变量都会被......【阅读全文】
发布时间:2012-12-22 09:10:01
三、make是如何工作的 在默认的方式下,也就是我们只输入make命令。那么, 1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。 2、如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“edit”这个文件,并把这个文件作为最终的目标文件。 3、如果edit文件不存在,或是edit所依赖的后面的 .o 文件的文件修改时间要比edit这个文件新,那么,他就会执行后面所定义的命令来生成edit这个文件。 &n......【阅读全文】
发布时间:2012-12-22 09:09:54
跟我一起写 Makefile 陈皓 概述—— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。 因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类......【阅读全文】
发布时间:2012-12-22 09:08:33
一. 输入子系统核心分析。 1.输入子系统核心对应与/drivers/input/input.c文件,这个也是作为一个模块注册到内核的。所以首先分析模块初始化函数。 [cpp] view plaincopy static int __init input_init(void) { int err;  ......【阅读全文】
发布时间:2012-12-22 08:56:03
linux input子系统分析--主要函数 一. 各种注册函数 因为分析一所讲的每种数据结构都代表一类对象,所以每种数据结构都会对应一个注册函数,他们都定义在子系统核心的input.c文件中。主要有三个注册函数 input_register_device 向内核注册一个input设备 input_register_handle 向内核注册一个handle结构 input_regis......【阅读全文】
发布时间:2012-12-22 08:55:40
linux input子系统分析--概述与数据结构 Input子系统处理输入事务,任何输入设备的驱动程序都可以通过Input输入子系统提供的接口注册到内核,利用子系统提供的功能来与用户空间交互。输入设备一般包括键盘,鼠标,触摸屏等,在内核中都是以输入设备出现的。下面分析input输入子系统的结构,以及功能实现。一. Input子系统结构与功能实现 1. Input子系统是分层结构的,总共分为三层: 硬件驱动层,子系统核心层,事件处理层。 (1)其中硬件驱动层负责操作具体的硬件设备,这......【阅读全文】
发布时间:2012-12-21 17:35:07
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 AM335x开发板 红色为注释了的 蓝色为添加上的 PATH 表示当前修改文件的路径 line 表示要修改的代码在当前文件的开始行 1,在原来的开发板上 1,修改 LCD 的分辨率: ......【阅读全文】
发布时间:2012-12-21 12:55:46
2.3.1 tftp服务器的配置如果用下面一条命令能够看到服务已经启动, 则不用安装, 否则需要按1或2点安装tftp-server服务器.[arm@localhost arm]#netstat -a | grep tftpudp 0 0 *:tftp ......【阅读全文】
发布时间:2012-12-20 10:30:15
本地计算机ip:192.168.1.100远程计算机ip:192.168.1.244 远程计算机打开 mysql 服务器:#/etc/init.d/mysql.server start 本地计算机连接远程 mysql服务器:./mysql -h "192.168.1.244" -u root -p 发生以下错误: ERROR 1130 (HY000): Host '192.168.1.100' is not allowed to connect to this MySQL server出现这种情况是......【阅读全文】
发布时间:2012-12-20 09:08:51
linux 3.2 内核中对调试的支持make menuconfig -> Kernel hacking -> kernel debugging选中,使内核使能内核调试功能1,使用 printk 进行调试printk的健壮性随时调用在中断中调用在进程上下文中调用在持有锁时调用在多处理器上同时使用printk的脆弱性终端启动前无法调用early_printk() printk的记录等级printk( KERN_WARNING“This is a warning\n”);printk( KERN_DEBUG“This is a warning!\n”);printk( “No......【阅读全文】
发布时间:2012-12-19 10:52:00
一、 什么是ioctl ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下: int ioctl(int fd, ind cmd, …); 其中fd是用户程序打开设备时使用open函数返回的文件标示符,cmd是用户程序对设备的控制命令,至于后面的省略号,那是一些补充参数,一般最多一个,这个参数的有无和cmd的意义相关。 ioctl函数是文件结构中的......【阅读全文】
发布时间:2012-12-19 09:45:26
想安装中文输入法时提示:Software database is brokenIt is impossible to install or remove any software. Please use the package manager "Synaptic" or run "sudo apt-get install -f" in a terminal to fix this issue at first.解决方法:sudo apt-get install -f......【阅读全文】