linux
asmxpl
这个作者很懒,什么都没留下…
展开
-
U-boot分析与移植(1)----bootloader分析
一、Boot Loader 概念就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境,他就是所谓的引导加载程序(Boot Loader)。嵌入式软件在Flash存储器中的分布图 二、为什么需要BootLoader?BootLoader的终转载 2014-03-11 16:58:15 · 360 阅读 · 0 评论 -
关于上拉电阻和下拉电阻
上拉电阻: 1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。2、OC门电路必须加上拉电阻,才能使用。3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入转载 2014-03-21 10:32:02 · 278 阅读 · 0 评论 -
Raspberry Pi + ArchLinux:网络dhcp不稳定,经常无法获取IP地址
经常发现树莓派开机之后网络没有起来,最终发现是因为dhcpcd的-t参数,也就是等待dhcp server响应的timeout时间太短导致的。默认是30秒,但是ArchLinux中配置的是10秒。查看了脚本,调用dhcpcd的是netcfg,netcfg本身也是一个脚本,所以最终发现这个-t是在/usr/lib/network/connections/ethernet中设置的。于是在这转载 2014-03-19 14:15:58 · 647 阅读 · 0 评论 -
如何阅读 Linux 内核源码
How to read Linux kernel source code 内核的源码非常的庞大,阅读源码是研究内核首先面对的问题. 我列出两种工具,也是我常用的两种.当然还有其他的工具,但是我推荐这两个工具:1. windows 平台 - Source Insight当前的版本是v3.5是windows下很不错的一个阅读源码的工具. 2. Linux 平台转载 2014-03-19 14:59:38 · 488 阅读 · 0 评论 -
嵌入式linux开发中一些有用的shell脚本收集整理
应用场景:有的时候,我们想获取某个文件中的一部分,比如我们想从一个完整的flash image文件中只抽取kernel,或者file system。特点:参数支持16进制,这对嵌入式开发很重要。#! /bin/sh#get a piece of content from a file.#$1:file name.#$2:offset of the file.[i转载 2014-03-16 10:55:11 · 484 阅读 · 0 评论 -
linux中的热插拔和mdev机制
嵌入式linux中文站向广大嵌入式linux爱好者介绍:mdev是busybox自带的一个简化版的udev 作用是在系统启动和热插拔 或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点都是由mdev创建的 mdev扫描/sys/class和/sys/block中所有的类设备目录,如果在目录中含有名为"dev"的文件,且文件中包含的是设备转载 2014-03-16 11:02:30 · 343 阅读 · 0 评论 -
Linux Shell 脚本
1.1 简介 1 打开终端后,就会出现一个提示符,形式通常如下 username@hostname$ 或者root@hostname# 2 $表示的是普通用户,#表示的是超级用户。超级用户是Linux中权限最高的用户 3 有两种运行脚本的方式 sh script.sh 或者是 path script (path是脚本所在的目录)转载 2014-03-16 10:41:37 · 1035 阅读 · 0 评论 -
嵌入式Linux中让应用程序自动启动
嵌入式Linux中让应用程序自动启动 在很多嵌入式系统中,由于可用资源较少,常常在系统启动后就直接让应用程序自动启动,以减少用户操作和节省资源。如何让自己的应用程序自动启动呢? 在Linux系统中,配置应用程序自动启动的方法有以下三种:1.通过/Linuxrc脚本直接启动Linux内核一旦开始执行,它将通过驱动程序来初始化所有硬件设备,这个初始化过程可以在启动时的PC显示器上转载 2014-03-16 10:35:11 · 1338 阅读 · 0 评论 -
linux shell实现随机数多种方法(date,random,uuid)
在日常生活中,随机数实际上经常遇到,想丢骰子,抓阄,还有抽签。呵呵,非常简单就可以实现。那么在做程序设计,真的要通过自己程序设计出随机数那还真的不简单了。现在很多都是操作系统内核会提供相应的api,这些原始参数是获取一些计算机运行原始信息,如内存,电压,物理信号等等,它的值在一个时间段可以保证是唯一的了。好了,废话我就不说了。呵呵。 shell脚本程序我们有那些获得随机数方法呢?转载 2014-03-14 17:43:56 · 569 阅读 · 0 评论 -
C 打印格式小记
d,lx,ld,,lu,这几个都是输出32位的hd,hx,hu,这几个都是输出16位数据的,hhd,hhx,hhu,这几个都是输出8位的,lld,ll,llu,llx,这几个都是输出64位的,printf( "%llu ",.....)%llu 是64位无符号%llx才是64位16进制数 Dev-C++下基本数据类型学习小结环境: Dev-C++ 4.转载 2014-03-14 17:49:56 · 453 阅读 · 0 评论 -
USB序列号相同产生的问题及解决
最近做了一些关于USB的方案,发现了一个共通的问题。由于Windows的设备驱动给每个设备一个设备标识(Device ID)。设计的初衷是用来区分每个设备的。USB设备的DeviceID命名规则很简单。举例来说,如果一个USB设备的VID是0x1234、PID是0x5678、序列号是00001,则它的DeviceID为:USB\VID_1234&PID_5678\00001由于转载 2014-03-14 17:43:23 · 6774 阅读 · 0 评论 -
当有多个设备online时,命令行窗口通过adb连接指定设备方法
1. 通过adb devices命令获取所有online设备的serial number。C:\Users\Administrator>adb devicesList of devices attachedemulator-5554 deviceSH0A6PL00243 device上面表示,当前有两个设备online,第一个emulator-5554是模拟器,后一个转载 2014-03-14 17:42:52 · 401 阅读 · 0 评论 -
I2C设备驱动流程
I2C设备驱动流程一、I2C设备驱动流程1) i2c_register_board_info定义I2C器件信息(Name,Address,etc.)static struct i2c_board_info __initdata pi2c_board_info[] = { { I2C_BOARD_INFO("max1586", 0x14),转载 2014-03-11 17:02:18 · 323 阅读 · 0 评论 -
精简Linux内核的一种方式--localmodconfig
localmodconfig是通过内核源码树的下列脚本执行的。scripts/kconfig/streamline_config.pllocalmodconfig首先会尝试提取一套配置选项作为模型。使用的模型为源码树的.config文件或者/boot下正在运行的内核的.config文件(/boot/config-)。当这些不存在时,将从正在运行的内核映像(/boot/vmlinuz-)、保转载 2014-03-11 18:00:48 · 1018 阅读 · 0 评论 -
多核通信
合抱之木,生于毫末。《老子·道德经》在智能手机平台中,为了保证多媒体业务在平台上的流畅运行,多采用专用的处理器来处理多媒体业务。如在Qucalcomm MSM 7K 平台上,就包含了4 个处理器内核,Qucalcomm MSM 7K 平台采用ARM 9(mARM,modemARM)处理基带业务;采用mDSP(Modem DSP)来处理协议栈业务;采用ARM 11(aARM,appl转载 2014-03-11 17:41:05 · 3432 阅读 · 0 评论 -
UHCI的数据流控制
UHCI的数据结构和数据流控制一、数据结构主要涉及到三个数据结构:Frame list 、Transfer Descriptors(TD)、Queue Head(QH)。Frame list必须要4K字节对齐;而TD和QH需要16字节对齐,一般情况本身的结构大小要超过16字节。三者之间的关系如下图所示:其中Frame list base address从UHCI的IO Regi转载 2014-03-11 17:11:20 · 508 阅读 · 0 评论 -
C++程序设计之四书五经—C++书籍推荐
C++是一门广泛用于工业软件研发的大型语言。它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值。和C语言一样,C++已经在许多重要的领域大获成功。 然而,一个不可否认的现实是,在低阶程序设计领域,C++挤压着C同时也在承受着C的强烈反弹,而在高阶程序设计领域,Java和C#正在不断蚕食着C++的地盘。也许C++与C合为一体永远都是一个梦想,也许Java和C#的狂潮终将迫使C++回归转载 2014-03-24 20:32:11 · 515 阅读 · 0 评论