随笔分类 -  linux

嵌入式linux学习
摘要:以下内容为转载:http://zhan.renren.com/ilinux?from=template使用变量在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串, 在Makefile中执行的时候其会自动原模原样地展开在所使用的地方。其与C/C++所不同 的是,你可以在Makefile中改变其值。Makefile中,变量可以使用在“目标”,“依赖目标”,“命令”或是Makefile的其它部分中。变量的命名字可以包含字符、数字,下划线(可以是数字开头),但不应该含有“:”、“#”、“=”或是空字符(空格、回车等)。变量是大小写敏感的,“foo”、“Foo”和“F 阅读全文
posted @ 2013-04-12 19:11 福。oO 阅读(380) 评论(0) 推荐(0) 编辑
摘要:书写规则规则包含两个部分,一个是依赖关系,一个是生成目标的方法。 在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标, 其它的目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么。一般来说,定义在Makefile中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标。如果第一条规则中的目标有很多个,那么,第一个目标会成为最终的目标。make所完成的也就是这个目标。 好了,还是让我们来看一看如何书写规则。一、规则举例 foo.o : foo.c defs.h # foo 模块cc -c -g foo.c看到这个例子,各位应该不 阅读全文
posted @ 2013-04-12 19:10 福。oO 阅读(728) 评论(0) 推荐(0) 编辑
摘要:以下内容为转载:http://zhan.renren.com/ilinux?from=templateMakefile详解序编译时,编译器需要的是语法的正确,函数与变量的声明的正确。对于后者,通常是你需要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++文件中),只要所有的语法正确,编译器就可以编译出中间目标文件。一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文件)。链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件(O文件或是OBJ文件)来链接我们的应用程序。链接器并不管函数所在的源文件,只管函数的中间目标文件(ObjectFil 阅读全文
posted @ 2013-04-12 19:04 福。oO 阅读(257) 评论(0) 推荐(0) 编辑
摘要:$make uImage时出现"mkimage" command not found - U-Boot images will not be built如果使用make uImage 则能生成由uboot 引导的内核文件, 需要用到uboot/tools/mkimage,可以在/etc/bashrc 文件末加入一下语句:export PATH:=$PATH:/usr/src/arm/u-boot-1.1.6/tools这样就能直接引用mkimage 命令。前提是uboot/tools目录下有mkimage这个工具,需要编译才能生成: 修改Makefile 找到 ifeq($ 阅读全文
posted @ 2012-10-25 10:50 福。oO 阅读(610) 评论(0) 推荐(0) 编辑
摘要:$ make meuncnfig>miscutils/ionice.c: In function 'ioprio_set':>miscutils/ionice.c:16: error: 'SYS_ioprio_set' undeclared (first use in>this function)>miscutils/ionice.c:16: error: (Each undeclared identifier is reported>only once>miscutils/ionice.c:16: error: for ea 阅读全文
posted @ 2012-10-21 21:01 福。oO 阅读(368) 评论(0) 推荐(0) 编辑
摘要:apt-cache search package 搜索包     apt-cache show package 获取包的相关信息,如说明、大小、版本等     sudo apt-get install package 安装包 阅读全文
posted @ 2012-09-24 13:49 福。oO 阅读(734) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2012-09-24 13:22 福。oO 阅读(320) 评论(0) 推荐(0) 编辑
摘要:01 #include 02 #include 03 #include 04 #include 05 #include 06 #include 07 #include 08 09 #define CALL_DEV_NAME "calldev" 10 #define CALL_DEV_MAJOR 240 11 12 int call_open (struct inode *inode, struct file *filp) 13 { 14 int num = MINOR (inode -i_rdev); //利用MINOR宏,获取次设备号 15 16 printk ( 阅读全文
posted @ 2012-09-21 19:59 福。oO 阅读(511) 评论(0) 推荐(0) 编辑
摘要:mknod命令   功能: 用于建立特殊文件   原型: #mknod [options] 设备文件名{bcu} 主设备号 次设备号   选项 [-m mode] [--mode=mode] [--help] [--version]   选项: -m,--mode mode 指定生成文件模式的选项。作为mode的包括chmod中使用的记号或数字形式    --help 显示帮助内容    --version 显示版本信息   说明: mknod命令用于建立FIFO、字符设备文件及块设备文件等。建立文件模式初值为0666。写入设备文件名后,指定该文件的特殊状态值。   在这里能够使用下列设置:     p FIFO文件     b 块设备文件     c或U 文件设备文件   建立块或字符特殊文件时,必须指定该设备文件的主设备号和次设备号。 阅读全文
posted @ 2012-09-17 23:42 福。oO 阅读(1118) 评论(0) 推荐(0) 编辑
摘要:内核启动信息,NAND部分: S3C24XX NAND Driver, (c) 2004 Simtec Electronics s3c2440-nand s3c2440-nand: Tacls=2, 20ns Twrph0=3 30ns, Twrph1=2 20ns NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit) Scanning device for bad blocks Creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit": 0x00000000-0x00040000 : "boot" 0x0004c000-0x0024c000 : "kernel" 0x0024c000-0x03ffc000 : "yaffs2" 阅读全文
posted @ 2012-04-03 23:28 福。oO 阅读(455) 评论(0) 推荐(0) 编辑
摘要:DM9000(A)是一个全集成、功能强大、性价比高的快速以太网MAC控制器,它带有一个通用处理器接口、EEPROM接口、10/100 PHY和16KB的SRAM(13KB作为接收FIFO,3KB作为发送FIFO)。它采用单电源供电,可兼容3.3V、5V的IO接口电平。 DM9000(A)同样支持MII(Media Independent Interface 介质无关)接口,连接到HPNA(Home Phone-line Networking Alliance 家用电话网络联盟)设备上或其它支持MII的设备。 DM9000(A)包含一系列可被访问的控制状态寄存器,这些寄存器是字节对齐的,他们在硬件或软件复位时被设置成初始值。 阅读全文
posted @ 2012-04-03 23:28 福。oO 阅读(536) 评论(0) 推荐(0) 编辑
摘要:GPIO,英文全称为General-Purpose IO ports,也就是通用IO口。嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备/电路,对这些设备/电路有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。而且,许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如灯亮与灭。对这些设备/电路的控制,使用传统的串行口或并行口都不合适。所以在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO。 阅读全文
posted @ 2012-04-03 23:24 福。oO 阅读(2860) 评论(0) 推荐(0) 编辑
摘要:设备驱动分类:字符设备,块设备,网络设备 在/dev目录下使用ls –l 命令可以查看各个设备的类型,主从设备号 cat /proc/devices可以查看系统中所有设备对应的主设备号 设备文件: 设备类型、主从设备号是内核与设备驱动程序通信时使用的 应用程序使用设备文件节点访问对应设备 Linux 2.4引入了设备文件系统(devfs)所有的设备文件作为一个可以挂载的文件系统 阅读全文
posted @ 2012-04-03 23:22 福。oO 阅读(295) 评论(0) 推荐(0) 编辑
摘要:7种工作模式: User 用户模式 正常程序执行 FIQ 快速中断模式 高优先级中断 IRQ 外部中断模式 通常中断处理 Surpervisor 管理模式 复位或软中断 Abort 中止模式 存取异常 Undefined 未定义模式 执行未定义指令 System 系统模式 特权级的 阅读全文
posted @ 2012-04-03 23:22 福。oO 阅读(284) 评论(0) 推荐(0) 编辑
摘要:UNIX领域的圣经:《UNIX环境高级编程》第二版 手头上要有本《UNIX程序员手册》 1、《跟我一起写Makefile》 2、《C程序设计语言》K&R 潭浩强的书《潭浩强C语言程序设计》可替代 顺便找本数据结构的书来看 3、《Advanced Programing in Unix Envirement》简称《APUE》国内的翻译的《UNIX环境高级编程》 4、《Unix Network Programing》简称《UNP》国内是清华翻译得《Unix网络编程》 5、《TCP/IP详解》 6、《用TCP/IP进行网际互连》第一卷非常经典 7、《Operating System - Design and Implement》国内翻译的是《操作系统设计与实现》 8、《Linux Device Driver》3e 应先看些《计算机原理》《计算机体系结构》 阅读全文
posted @ 2012-04-03 23:20 福。oO 阅读(1021) 评论(0) 推荐(2) 编辑
摘要:第一步:先会使用它。连Linux 是什么、基本操作都不会就去研究内核,纯属扯淡,“门”都没有。 第二步:看懂内核源码需要一些操作系统、C 语言等的基础。 第三步:找本合适的内核参考书,让它帮助你对内核有个整体的理解和认识, 第四步:要能够动手配置编译内核,还要基本看得懂内核中的Kconfig 和Makefile 文件。 阅读全文
posted @ 2012-04-03 23:19 福。oO 阅读(873) 评论(0) 推荐(0) 编辑
摘要:第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作 ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。 一. Linux汇编行结构 任何汇编行都是如下结构: [:] [} @ comment [:] [} @ 注释 Linux ARM 汇编中,任何以冒号结尾的标识符都被认为是一个标号,而不一定非要在一行的开始。 阅读全文
posted @ 2012-04-03 22:42 福。oO 阅读(481) 评论(0) 推荐(0) 编辑
摘要:每一个在UNIX/Linux上工作的程序员可能都擅长Shell脚 本编程。但大家解决问题的方式却不尽相同,这要取决于对专业知识的掌握程度、使用命令的种类、看待问题的方式等等。对于那些处在shell脚本编程初级阶 段的程序员来说,遵循一些恰当的做法可以帮助你更快、更好的学习这些编程技巧。下面,我们就来讨论这些能帮助你学习shell脚本编程的方法吧。 阅读全文
posted @ 2012-04-02 12:31 福。oO 阅读(250) 评论(0) 推荐(0) 编辑
摘要:fork()函数用于从一个已存在进程中创建一个新进程,新进程称为子进程,原进程称为父进程,父子进程分别有各自的返回值,其中父进程的返回值是子进程的进程号,而子进程则返回0。使用fork函数得到的子进程是父进程的一个复制品,它从父进程处继承了整个进程的地址空间。地址空间:包括进程上下文、进程堆栈、打开的文件描述符、信号控制设定、进程优先级、进程组号等。子进程所独有的只有它的进程号,计时器等。因此,使用fork函数的代价是很大的。一般来说,在fork之后是父进程先执行还是子进程先执行是不确定的.这取决于内核所使用的调度算法。 阅读全文
posted @ 2012-04-02 10:40 福。oO 阅读(355) 评论(0) 推荐(0) 编辑
摘要:程序是存放在磁盘上,处于某个目录中的一个可执行文件.程序的执行实例被称为进程.进程是linux事物管理的基本单元。所有的进程均拥有自己独立的处理环境和系统资源。进程和程序的最本质的区别是程序是静态的,它是一些保存在磁盘上的指令的有序集合。进程是一个动态的概念,它是程序执行的过程,包括动态创建、调度和消亡的整个过程。进程最重要的属性是进程号(PID)和父进程号(PPID),PID惟一地标识了一个进程.一个进程创建的新进程称为子进程。相应创建了子进程的进程称为父进程。进程整个生命周期可以划分为三种状态: 1、执行态:该进程正在占用CPU运行 2、就绪态:进程已经具备执行的一切条件,正在等待... 阅读全文
posted @ 2012-04-02 10:39 福。oO 阅读(190) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示