自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嵌入式-linux 开发

  • 博客(62)
  • 资源 (2)
  • 收藏
  • 关注

原创 ubuntu 12.04

export linux_gfx_modeif [ "${linux_gfx_mode}" != "text" ]; then load_video; fimenuentry 'Ubuntu,Linux 3.2.0-29-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {    recordfai

2014-03-29 10:39:26 597

转载 状态机系统在嵌入式软件中的地位

一、有限状态机系统在嵌入式软件中是个什么地位?     嵌入式系统软件的分类: 1、按处理器位数分类(嵌入式系统分为4位、8位、16位、32位和64位) 2、按产品应用类型分类(信息家电类;移动终端类;网络通信类;汽车电子类,工业控制类等) 3、按系统实时性来分类(根据实时性的强弱,嵌入式系统分为硬实时、软实时系统:硬实时:系统对系统响应时间有严格的要求,如果系统响应时间不能满

2014-03-25 11:36:08 3156

原创 指令和数据混合存储与分开存储的比较

冯. 诺依曼结构指令和数据是不加区别混合存储的、共享数据总线,因而取指令和取操作数是不可以同时进行的(PC机存储方式)。哈佛结构指令和数据是完全分开的,存储器分为固定大小的两个部分,分别用来存放指令和数据。这样取指令和取操作数可以同时进行。(单片机常用存储方式)。冯. 诺依曼结构中,数据和程序存储器是共享数据总线的。数据总线共享有许多优点,它可以减少总线的开销,这样控制逻辑也相对简单。

2014-03-21 14:00:19 3586

原创 电池供电设备的电池容量的选择

问:一个3.7V、3000mAh的电池在3W的设备中能用多长时间。答:首先给你解释电池容量3000mAh。m是“毫”的意思 ; a是“安”的意思 ; h 是“小时”的意思        “容量3000mah“意思是:以3000毫安为放电电流,可放电1小时的时间。       因1A=1000mA, 1小时=3600秒=3600S , 所以3000mah=3A×3600S=10800(A

2013-12-12 10:27:29 1287

转载 windows下安装Git客户端

下载安装包1、TortoiseGit下载地址:http://code.google.com/p/tortoisegit/downloads/list本次下载版本——TortoiseGit-1.7.12.0-64bit.msi  TortoiseGit 1.7.12.0 64bit   x64 Featured  2、msysgit下载地址:http://code.g

2013-12-03 15:11:14 724

转载 Ubuntu下载Android源代码和内核

一准备工作 首先你在自己的电脑上要安装好Ubuntu,然后进行下面的工作,你只需要复制+粘贴就行了 1、安装Git工具。Android源代码采用Git工具来管理,与SVN相比,这是一种分布式的源代码管理工具,而SVN是集中式的源代码管理工具。要安装Git工具,在Ubuntu上执行以下命令即可: USER-NAME@MACHINE-NAME:~$ sudo apt-get i

2013-12-01 22:44:32 420

转载 Android系统硬件抽象层(HAL)原理

Android系统硬件抽象层(HAL)原理在android开发过程中,我们经常看到HAL这个概念,这就android的硬件抽象层的(Hardwaere Abstraction Layer)缩写,它是Goolge应某些厂商不希望公开源码所添加的一个适配层,能以封闭源码的方式提供硬件驱动模块,目的就是把android framework层和linux kernel层隔离开来,使android系统不

2013-11-29 17:30:47 774

转载 Ubuntu12.04下在Android4.0.4源码下载及其编译过程

一、下载源码1、下载工具repo:https://android.googlesource.com/tools/repo/在本地目录建个bin的文件夹,进入bin文件夹;通过git下载:[cpp] view plaincopygit clone https://android.googlesource.com/tools/repo  下载完成后,进入

2013-11-28 22:20:05 544

转载 android C编程技巧 及 C/C++开发测试

运行模拟器   emulator -console  * 将文件写入到模拟器的userdata.img文件中  adb push   *将一个目录拷贝到模拟器中,包括子目录  adb push   * 将一个目录从模拟器中拷出来  adb pull   * 使得模拟器可以运行arm代码.  使用GNU/ARM Linux编译器编译你的应用程序就可以了  *

2013-11-25 22:50:21 497

转载 ADB shell出现error:device offline提示

解决办法:1、adb kill-server2、adb start-server3、adb remount执行这3个命令然后重新键入adb shell应该就可以了

2013-11-25 17:48:39 1003

转载 source insight的查找功能

sourceinsight是一款很好的c语言的程序编辑器,方便对project管理,方便程序的阅读和编辑。查找功能使用十分频繁,选项较多,与其它软件的查找功能也类似,下面对英文版的查找功能,做简单说明:查找参数:whole wordsonly :                 全字匹配查找casesensitive  :              

2013-10-12 14:12:51 496

转载 Linux补丁文件语法

diff(differential)功能说明:比较文件的差异。 语  法:diff [-abBcdefHilnNpPqrstTuvwy][-;][-C ;][-D ;][-I ;][-S ;][-W ;][-x ;][-X ;][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]补充说明:diff

2013-09-06 15:32:37 1776

转载 Linux内核初始化过程

了解内核的初始化过程有助理解内核的整个流程。一、对硬件数据结构的初始化过程。1、系统首先调用 printk() 函数在屏幕上打印 Linux 内核版本号和编译内核所使用的 gcc 编译器版本号、启用时间等,如果这个过程失败,将显示一个参考信息给用户。2、调用 arch/i386/kernel/setup.c 中的 setup_arch() 函数,初始化系统主板上各个集成电路控制器,

2013-07-11 09:38:04 1142

转载 应用程序在linux上如何执行的

linux 内核的终极目标:执行用户的应用程序,其中涉及到进程管理、进程调度、内存管理、文件系统等内核模块的参与。下面就来看一下:用户程序在内核中是怎么被执行的。执行文件是如何在shell中被"执行"的。本文中尽可能少用一些源码,免得太过于无聊,主要讲清这个过程,感兴趣的同学可以去查看相应的源码了解更多的信息。1.父进程的行为: 复制,等待执行应用程序的方式有很多,从shell

2013-07-11 09:08:08 601

原创 字符设备驱动程序之自动创建设备节点

#include #include #include #include #include static struct class *led_class;int led_open(struct inode *inode, struct file *file){ printk("led_open\n"); return 0;}ssize_

2013-06-26 15:14:11 492

原创 OK6410驱动学习之first_drv

一、实验环境              操作系统:ubuntu 12.04              开发板:OK6410 (DDR:256   NAND Flash:2G)             开发板linux内核:linux-2.6.36.2二、简单字符设置驱动程序框架思路           1.确定驱动程序的主设备号与设备名称(一个主设备号对应一个驱动)。

2013-06-26 10:22:18 585

原创 linux 设备驱动常用头文件

#include 是在linux-3.0.1/include/linux下面寻找源文件。#include 是在linux-3.0.1/arch/arm/include/asm下面寻找源文件。#include 是在linux-3.0.1/arch/arm/mach-s3c2410/include/mach下面寻找源文件。#include 在linux-3.0.1_TX2440A

2013-06-05 21:29:12 584

转载 ubuntu下添加开机启动项

功能更全的工具:sysv-rc-conf#sudo apt-get update#sudo apt-get install sysv-rc-conf运行:#sudo sysv-rc-conf也可以直接加入启动程序,例如把 /etc/init.d/red5 加入到系统自动启动列表中:#sudo sysv-rc-conf red5 on二、背景知识  1、Ubuntu运

2013-05-29 10:20:47 992

原创 linux 系统编程——进程管理

linux 系统编程——进程管理 一、什么是进程 概念:每个运行着的程序实例就构成一个进程,就好像linux系统下ls命令  实现:执行cat a.txt | wc -l  从操作上看是实现统计a.txt文本的行数的功能,从程序的角度就是两个进程间通过管道进行通信的例子。  特点:linux系统允许多用户访问系统,每个用户可以同时运行许多程序,或者同时运行同一个程序的许多个实例。

2013-05-22 11:30:38 1049

原创 内核基础篇——微型计算机组成原理

微型计算机组成原理的几个概念一、计算机内部总线       计算机内部总线是由数据总线、地址总线及控制总线构成。       对于使用80386CPU的PC机,其内部地址线和数据线都分别有32根,即都是32位的。因此地址寻址空间范围有2的32次方个字节。即0-4GB。二、I/O端口和寻址        CPU要访问I/O接口控制器的数据和状态信息,首先要指定它们的地址。这种

2013-05-13 15:43:43 1052

原创 Linux内核入门学习

学习嵌入式开发,必不可少的要接触linux的开发及编程。而开发及编程都是基于linux内核的。      正如linux系统的创始人在一篇新闻组投稿上所说的,要理解一个软件系统真正的运行机制,一定要阅读其源代码。        为了对linux内核有进一步的理解、更好的运用,我也开始加入linux内核学习的大军中。        一直以来就对linux这个神般的操作系统,充满了好奇

2013-05-13 14:54:28 709

转载 使用AXD调试S3C6410 u-boot .

S3C6410开发时使用:前端软件(ADS)+仿真器(JLink)的方式。JLink与前端软件(AXD)相连时,需要使用调试代理,所有PC机需要安装Jlink驱动。S3C6410的前端软件采用ADS,ADS中含有AXD调试工具。调试方法:1、JLink V8连接S3C6410之后,一开始出现不能识别的core,等待一会儿之后,能识别到ARM11。为什么能用Jlink调试CPU,

2013-04-18 09:02:03 920

转载 嵌入式bootloader技术内幕

1. 引言在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。2. Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。 3. 文件系统。包括根文件系统和建立于 Flas

2013-04-10 12:38:31 715

转载 VCC,VDD,VEE,VSS,VPP 表示的意义

VCC,VDD,VEE,VSS,VPP 表示的意义版本一:简单说来,可以这样理解:一、解释VCC:C=circuit 表示电路的意思, 即接入电路的电压;VDD:D=device 表示器件的意思, 即器件内部的工作电压;VSS:S=series 表示公共连接的意思,通常指电路公共接地端电压;VEE:负电压供电;VPP:编程/擦除电压。二、说明1、对于数字电路

2013-04-10 12:31:02 2843

转载 DDR容量计算

SDRAM Calculation of capacity Calculate the number of addressable locations (don’t think of bit/byte/word for now)Number of address lines: 11 (A0-A10)Number of banks : 2 (BA0-BA1)Max number

2013-04-09 17:53:27 4341

转载 S3C6410学习——Nand flash陷阱

S3C6410学习——Nand flash陷阱 当系统以Nand方式启动时,硬件将Nand Flash的前8KB拷贝到Steppingstone,然后从0地址开始运行程序,在这8KB以内代码中,我们需要完成必要的硬件初始化,如果代码超过8K,我们还需要将剩余代码的搬移到链接地址处,一般在SDRAM/DDR中。其中,硬件部分需要初始化系统时钟、DDR和NAND Flash三部分。这就是S3C

2013-04-09 15:48:23 704

转载 Win7用远程桌面(xrdp+vnc)连接Ubuntu

Win7用远程桌面(xrdp+vnc)连接Ubuntu            Ubuntu自带了一个远程桌面,使用的是vpn模式,此方式远程桌面速度慢,而且经常无法连接,让人非常郁闷。下面采用的是另外xrdp模式,使用win7自带的系统工具远程桌面,连vnc viewer都省了。而且速度快,能正常访问  具体方法:  Ubuntu下的操作  1、首先你要有Ubuntu10.10,其

2013-04-07 14:57:17 1338 1

转载 Xshell用ssh连接ubuntu掉线解决方法

Xshell用ssh连接ubuntu掉线解决方法 1、Xshell客户端设置  www.2cto.com    修改Keep Alive 时间 2、服务器端修改 修改/etc/ssh/sshd_config文件,找到 ClientAliveInterval 0和ClientAliveCountMax 3并将注释符号("#")去掉,将ClientAlive

2013-04-07 14:51:51 1156

转载 ubuntu系统怎么使用root用户登录

ubuntu系统默认root用户是不能登录的,密码也是空的。  如果要使用root用户登录,必须先为root用户设置密码  打开终端,输入:sudo passwd root 然后按回车  此时会提示你输入密码,在password:后输入你现在登录的用户的密码  然后系统提示你输入新的UNIX密码  Enter new UNIX password:这里输入你想为root设置的密码

2013-04-05 16:13:22 1335

原创 OK6410裸机程序(四)——DDR初始化

DDR初始化 一、DDR的容量       我们在DDR芯片资料上的开头都会标明DDR的容量:如我们的手上的OK6410A的DDR(K4X1G163PC),它的芯片资料上写的是32M x16 Mobile-DDR SDRAM。但是厂家跟说ok6410a有128M的容量。看到这里不禁就个疑问了。芯片上明明写是32M为什么,FL说是128M呢。在这里就能给你答案,板子上有两片DDR。那它的容量

2013-04-04 13:32:37 2620 2

原创 程序的三段的解释

程序的三段的解释一个程序主要包括下面三个段:代码段,数据段,BSS段 代码段:指令代码(局部变量也放在代码段)。数据段:有初始值(并且不为0)的全局变量或静态变量。BSS段:初始化为0或无初始值的全局或静态变量。 在我们编译出来的二进制文件中,是不存在BSS段的。在我们程序运行时,会自动清除BSS段。这样可能节省内存空间。程序在访问全局变量时,用到的是链接地址。程序

2013-03-29 11:43:38 915

转载 终端下vim中的汉字为乱码

问题:终端下vim中的汉字为乱码,网上搜索了一些解决方案。但是奇怪的是,这些方法都不能实现gvim的菜单和文中汉字,终端vim下的文中汉字同时正常显示。有一种方案应用后vim和gvim打开的文件中的汉字(中文)都能正常显示,但gvim的菜单汉字为乱码。对这些解决方案做了各种尝试后,找到如下方面实现同时汉字均能正常显示。打开终端$sudo -s#vim /etc/vim/vim

2013-03-27 21:37:02 701

原创 OK6410裸机程序(三)——外部中断

OK6410裸机程序(三)——外部中断          s3c6410具有187个多功能I/O端口,其实有127个可以被配置成外部中断。这127个引脚,可分成10个组。每个中断引脚,都有相对应的中断号,如(GPN0 = Ext.Interrupt[0]).      这里给大家分一下:      EINT0    GPN0--->GPN15        GPL8--->GPL1

2013-03-24 14:17:08 1174

原创 OK6410裸机程序(二)——系统时钟

OK6410裸机程序(二)——系统时钟一、时钟源的选择       时钟源的选择 时钟源的选择 时钟源的选择内部时钟会产生用于外部的时钟源,其说明如表 3-1 所示。当外部复位信号被声明时,OM[4:0]引脚决定了 S3C6410的操作模式。OM[0]引脚选择外部时钟源,例如,如果OM[0]是 0,则 XXTIpll(外部晶体)被选择。否则,XEXTCLK(外部时钟输入)被选择。在OK64

2013-03-20 16:49:07 1524 1

原创 OK6410裸机程序(一)——GPIO(LED)

本人入手OK6410-A开发板,已经有一段时间。因为去年工作忙一直没时间来折腾这个东东。现在工作也有点空闲时间,又想开始折腾一下了。            我给自己定的最终目标是:linux驱动开发。有点经验的人都知道,驱动开发对硬件知识的掌握也很重要,所以本人确定就先从裸板程序开始学习。我将借用这个平台来记录我学习的过程中的问题和经验。好了话不多说,现在就开始第一课。       O

2013-03-18 17:12:56 1428 1

转载 ARM映像文件

ARM映像文件ARM中的各种源文件(包括汇编文件,C语言程序及C++程序等)经过ARM编译器编译后生成ELF(Executable and linking format)格式的目标文件。这些目标文件和相应的C/C++运行时用到的库经过ARM连接器处理后,生成ELF格式的映像文件(image),这种ELF格式的映像文件是一种可执行文件,可被写入嵌入式设备的ROM 中。bin文件是真正的可

2013-03-18 11:17:25 1039

原创 arm-linux-交叉编译工具

arm-linux-交叉编译工具              源文件需要经过编译才能生成可执行文件。在windows下进行开发时,只需要单击几个按钮即可完成编译,集成开发环境已经将各种编译工具的使用封装好了。Linux下也有优秀的集成开发工具,但是更多的时候直接使用编译工具;即使使用集成开发工具,也要掌握一些编译选项。               PC上的编译工具链为gcc、ld、o

2013-03-18 11:16:19 1181

转载 u-boot mkconfig文件分析

在u-boot执行make之前,会完成配置过程,make    xxx_config   这个目标是调用uboot根目录下的mkconfig文件。同时给他传递六个变量,以make smdk2410_config为例,这六个变量为smdk2410 arm arm920t smdk2410 NULL s3c24x0   #!/bin/sh -e**** 此处-e  不知道什么意思?

2013-03-15 13:59:42 527

转载 ubuntu如何设置开机启动默认命令行界面 .

方法一:ubuntu在6.10开始用upstart替代init,主要脚本都在/etc/event.d下面,默认情况下/etc下没有inittab文件,但是默认情况下inittab虽然不存在,ubuntu用upstart替代init,但还是和init保持兼容。方法是自建一个inittab文件,写入一行id:3:initdefault: ,然后进入/etc/rc3.d,将S13kdm移动到其他目录

2013-03-14 14:31:38 678

转载 使用Windows远程登录Ubuntu

一、SSH登录    1、Ubuntu默认没有安装SSH ,可以在新得利软件安装程序里,搜索SSH,标记并安装;        或者使用命令:    sudo apt-get install openssh-server sudo /etc/init.d/ssh restart ssh localhost    用netstat -tlp可以查看ssh服务已经

2013-03-14 13:59:29 958

ARM9基础实验教程

ARM9基础实验教程

2012-03-27

C语言嵌入式系统编程修炼之道

C语言嵌入式系统编程修炼之道

2012-03-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除