嵌入式Linux中文站

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

阅读(224)

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解析

阅读(116)

有时候你会发现没有什么程序在运行,但是使用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与内存性能监测

阅读(194)

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

linux syscall系统调用获取线程PID

阅读(93)

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

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

阅读(205)

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

linux中fork()函数详解

阅读(157)

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

Linux 系统错误码及其说明

阅读(62)

#defineEPERM 1/* Operation not permitted */ #defineENOENT 2/* No such file or directory */ #defineESRCH 3/* No such process */ #defineEINTR 4/* Interrupted system call */ #defineEIO 5/* I/O error */ #defineENXIO 6/* No such device or address */ #defineE2B

linux 用户空间与内核空间——高端内存详解

阅读(240)

摘要:Linux 操作系统和驱动程序运行在 内核空间 ,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。用户空间的内存映射采用段页式,而内核空间有自己的规则;本文旨在探讨内核空间的地址映射。 Linux内核地址空间划分 通常 32位Linux内核虚拟 地址空间 划分0~3G为用户空间, 3~4G为内核空间(注意,内核可以使用的线性地址只有1G) 。注意这里是32位内核地址空间划分,6