嵌入式Linux中文站

嵌入式Linux开发环境的搭建之:嵌入式开发环境的搭建

阅读(288)

交叉编译的概念在第4章中已经详细讲述过,搭建交叉编译环境是嵌入式开发的第一步,也是必备的一步。搭建交叉编译环境的方法很多,不同的体系结构、不同的操作内容甚至是不同版本的内核,都会用到不同的交叉编译器,而且,有些交叉编译器经常会有部分的bug,这都会导致最后的代码无法正常地运行。因此,选择合适的交叉编译器对于嵌入式开发是非常重要的。 交叉编译器完整的安装一般涉及多个软件的安装(读者可以从ftp://gcc.gnu.org/pub/下载),包括binutils、gcc、glibc等软件。其中,binutils

嵌入式Linux开发环境的搭建之:U-Boot移植

阅读(242)

1.概念 简单地说,Bootloader就是在操作系统内核运行之前运行的一段程序,它类似于PC机中的BIOS程序。通过这段程序,可以完成硬件设备的初始化,并建立内存空间的映射关系,从而将系统的软硬件环境带到一个合适的状态,为最终加载系统内核做好准备。 通常,Bootloader比较依赖于硬件平台,特别是在嵌入式系统中,更为如此。因此,在嵌入式世界里建立一个通用的Bootloader是一件比较困难的事情。尽管如此,仍然可以对Bootloader归纳出一些通用的概念来指导面向用户定制的Bootloader设计

嵌入式linux之Uboot和系统移植--基础

阅读(363)

1. 为什么要有 uboot 2. 为什么是 uboot 3.uboot 必须解决哪些问题 4.uboot 的工作方式 5.uboot 的常用命令 1 6.uboot 的常用命令 2 7. 开发板和主机的 ping 通 8.uboot 的常用命令 3 9.uboot 的常用命令 4 10.uboot 的常用环境变量 1 11.uboot 的常用环境变量 2 1. 为什么要有 uboot 1.1 、计算机系统的主要部件 (1) 计算机系统就是以 CPU 为核心来运行的系统。典型的计算机系统有: PC 机(台

linux的cache memory解析

阅读(136)

有时候你会发现没有什么程序在运行,但是使用top或free命令看到可用内存free项会很少,此时查看系统的 /proc/meminfo 文件,会发现有一项 Cached Memory: 输入cat /proc/meminfo查看: MemTotal: 16425996 kB MemFree: 5698808 kB Buffers: 380904 kB Cached: 9389356 kB SwapCached: 212 kB Active: 6569200 kB Inactive: 3725364 kB

Linux中CPU与内存性能监测

阅读(317)

在系统维护的过程中,随时可能有需要查看 CPU 使用率内存使用情况的需要,尤其是涉及到JVM,程序调优的情况,并根据相应信息分析系统状况的需要。 top命令 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。 可以直接使用top命令后,查看%

linux syscall系统调用获取线程PID

阅读(134)

线程id Linux中,每个进程有一个pid,类型pid_t,由getpid()取得。Linux下的POSIX线程也有一个id,类型 pthread_t,由pthread_self()取得,该id由线程库维护,其id空间是各个进程独立的(即不同进程中的线程可能有相同的id)。Linux中的POSIX线程库实现的线程其实也是一个进程(LWP),只是该进程与主进程(启动线程的进程)共享一些资源而已,比如代码段,数据段等。 通过pthread_self()取得的线程id实际上是当前线程的descriptor地址

简单的linux杂项设备驱动的写法

阅读(222)

linux将设备驱动分成几大类:字符设备、杂项设备、块设备、网络设备 本篇文章介绍杂项设备驱动的编写,杂项设备与字符设备本质上没什么区别,但是写法和相关函数的使用上有区别。 除此之外杂项设备主设备号都为10,设备间通过次设备号来进行区分,与字符设备相比节约了主设备号。 杂项设备驱动编写模式一般如下: 在linux系统下一切皆文件,设备驱动同样秉承此大法。 对文件操作就少不了打开、读写、关闭等操作。 所以杂项设备驱动第一步就是进行文件操作函数的编写。 驱动模块最终需要加载到内核上运行,内核对文件的操作在内部

linux中fork()函数详解

阅读(166)

一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。 我们来看一个例子: [cpp] view plain copy /* *fork_test.c