Welcome 微信登录

首页 / 操作系统 / Linux

ARM Linux静态映射分析

ARM Linux静态映射分析

在华清远见上课过程中,发现静态映射方面初学者比较难于掌握和理解,下面分析一下静态映射机制的原理并通过GPIO和USB、LCD等的静态映射作为例子来说明如何通过这种静态映射的方式访问外设资源。内核提供了一个重要的结构体struct machine_desc ,这个结构体在内核移植中起到相当重要的作用,内核通过machine_desc结构体来控制系统体系架构相关部分的初始化。machine_desc结构体的成员包含了体系架构相关部分的几个最重要的初始化函数,包...
最完整的Android源码获取方法及环境建立

最完整的Android源码获取方法及环境建立

网上看了前人的那么多关于Android源码获取方法及环境建立,门路可真多,今天我就总结一下个人学习经验,算是比较完整的了。一、获取方法:1、直接找到人家已经下载好的android源码,如cupcake.tar.gz(估计有1G多,如果有必要再用repo sync更新)2、自己动手从google那里下载(第一种方法往往找不到,因为我们是个体户) 二、必要硬条件:1、在VM虚拟机下安装好Ubuntu(ubuntu8.04以上版本),而且最好分配30G空间给它(...
Android版本及版本代号对照

Android版本及版本代号对照

Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。Android版本与版本代号搞晕了我良久,今天网上找了答案,记下来先Android 1.5:Cupcake(杯子蛋糕) Android 1.6:Donut(甜甜圈) Android 2.0 / 2.1:éclair(闪电泡芙) ...
I/O操作上设置超时之alarm闹钟法

I/O操作上设置超时之alarm闹钟法

环境是Linux Ubuntu系统调用 alarm,它在指定超时期满时产生SIGALRM信号。这个方法涉及信号处理。用法: alarm(time):TIME就是指定的超时期;如果之前设有超时期,alarm()会返回其时期的剩余值; signal(SIGALARM, connect_alarm):指定connect_alarm函数是时钟期满时的处理函数;函数退出前要关闭时钟: Sigfunc *sigfunc; sigfunc=signal(SIGALARM...
Linux 程序信号处理

Linux 程序信号处理

Linux下的信号名以SIG开头,如:SIGSEGV 段错误、SIGTERM 退出 等等,它们都在头文件<signal.h>中定义信号名和对应的值,并且信号的值都大于0。产生信号的原因:1.硬件异常:除零出错、无效内存的引用,如SIGSEGV表示进程访问了无效的内存地址2.软件发送的信号:如SIGPIPE表示进程尝试写入到没有阅读的管道(或socket)时,SIGALRM进程计时器到期3.用户按下某些终端按键:如按下Ctrl+C,产生SIGIN...
用shell脚本来做fdisk

用shell脚本来做fdisk

对于多块硬盘做fdisk是个很漫长的工作,很想用个脚本来实现,发现早就有人讨论过做fdisk的脚本。于是拿来用了一下发现效果不错:#!/bin/bash fdisk$1<<EOF d#删除已有分区 n#创建主分区 p 11#分区起始扇区 #分区结束扇区,输入空格的话,就表示使用默认值,也就是整个磁盘都作为一个分区 t#设置分区label,默认情况下是Linux, 83#将label设置为Linux w EOF 但是这种方法的问题也很严重,就是无...
C程序中获得命令行输出结果

C程序中获得命令行输出结果

在c程序中,system函数可以运行命令行,但是只能得到该命令行的int型返回值,并不能获得显示结果。例如system(“ls”)只能得到0或非0,如果要获得ls的执行结果,则要通过管道来完成的。首先用popen打开一个命令行的管道,然后通过fgets获得该管道传输的内容,也就是命令行运行的结果在linux上运行的例子如下:voidexecuteCMD(constchar*cmd,char*result) { charbuf_ps[1024]; ch...
Linux下的Shell语言编程入门

Linux下的Shell语言编程入门

通常情况下,我们从命令行输入命令每输入一次就能够得到系统的一次响应。一旦需要我们一个接着一个的输入命令而最后才得到结果的时候,这样的做法显然就没有效率。要达到这样的目的,通常我们利用shell程序或者shell脚本来实现。Linux下的Shell语言编程入门PPT下载在 http://www.linuxidc.net/thread-2058-1-1.html 一、简介 Shell编程有很多类似C语言和其他程序语言的特征,但是又没有编程语言那样复杂。Sh...
《Linux程序设计》——文件操作之底层函数调用

《Linux程序设计》——文件操作之底层函数调用

《Linux程序设计》一书的第三章是讲有关文件操作的函数及其用法的,其中第一节讲的是底层函数调用write,read,open,close,itocl。其中,open函数被定义在头文件fcntl.h中(如果系统不符合POSIX规范的话,有可能在使用时还要包含头文件sys/types.h和sys/stat.h);另外四个函数则被定义在头文件unistd.h中。当然了,这是这本书上所说的内容。Linux程序设计(原书第2版)(PDF中文版 + 源码)下载地址在...
QT控制选中item的文字颜色(Highlighted Text)

QT控制选中item的文字颜色(Highlighted Text)

默认的情况下,QTableView,QTableWidget等控件,当item选中后其背景色为蓝色的,文字颜色(前景色)为白色的,如图: 如果我们想动态的更改item的前景色(例如值大于零显示红色,小于零显示绿色),并且选中后文字颜色不变(这个是我想实现的,其实就是模仿一般的股票价格图表),怎么办呢? 首先在添加或者修改item的时候,可以使用:model->item(row, column)->setForeground(QBrush(QC...
如何让 Qt 的程序使用 Sleep

如何让 Qt 的程序使用 Sleep

Qt 为何没有提供 Sleep论坛上不时见到有人问:Qt 为什么没有提供跨平台的 sleep 函数? 使用平台相关的 Sleep 或 nanosleep 以后,界面为什么没有反应? QThread 中提供了protected 权限的 sleep 函数,如何用到主线程中? 使用 QTest 中的 qSleep,在windows下如何隐藏控制台? 这些问题其实归结为一点:在主线程中使用这些函数是一种错误,这会直接导致界面无法刷新,用户与程序无法交互。Qt不提供...
Qt 全局热键 QxtGlobalShortcut 学习

Qt 全局热键 QxtGlobalShortcut 学习

不少人有给程序添加全局热键的需求。网上随便一搜,就能找到不少介绍windows下如何实现的方式:首先: 使用 RegisterHotKey和 UnregisterHotKey 注册和反注册热键其次: 在事件全局过滤器 winEventFilter 中相应热键 但是涉及其他平台的,中文资料中提到的似乎不多。libqxt其实Qt第三方的库 libqxt 中已经给出了一个比较好的跨平台的解决方案,这就是 QxtGlobalShortcut。所以,只要你使用这个第...
Java堆内存Heap与非堆内存Non-Heap

Java堆内存Heap与非堆内存Non-Heap

堆(Heap)和非堆(Non-heap)内存按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码...
Python之os模块的进程管理介绍

Python之os模块的进程管理介绍

有两种方式来实现并发性,一种方式是让每个“任务"或“进程”在单独的内在空间中工作,每个都有自已的工作内存区域。不过,虽然进程可在单独的内存空间中执行,但除非这些进程在单独的处理器上执行,否则,实际并不是“同时”运行的。是由操作系统把处理器的时间片分配给一个进程,用完时间片后就需退出处理器等待另一个时间片的到来。另一种方式是在在程序中指定多个“执行线程”,让它们在相同的内存空间中工作。这称为“多线程处理”。线程比进程更有效,因为操作系统不必为每个线程创建单独...
<< 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 >>