
嵌入式
bytxl
归零。
得意之时谨记,一半命运还掌握在上帝手里;失意之时须知,一半命运还掌握在自己手里。
不怕死,不找死。
展开
-
在嵌入式设备中不创建swap分区的原因何在
http://blog.youkuaiyun.com/hongdatong/article/details/4017353转载 2014-07-28 19:55:40 · 1601 阅读 · 0 评论 -
Bootloader
Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。Bootloader概述 对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。因此,几乎不可能为所有的嵌入式系统建立一个通用的Bootloader,不同的处理器架构都有不同的Bootloade原创 2015-10-21 10:00:46 · 1144 阅读 · 0 评论 -
关于嵌入式系统的学习路线图
来源:本文乃同济大学软件学院王院长(JacksonWan)在同济网论坛发表的帖子《谈谈软件学院高年级同学的学习方向》的第二部分。三部分依次为:一、关于企业计算方向;二、关于嵌入式系统方向;三、关于游戏软件方向。嵌入式系统方向嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并转载 2015-10-22 19:45:29 · 31344 阅读 · 2 评论 -
Linux下实现USB口的热插拔事件触发
目前要做一个在嵌入式平台上的USB口的热插拔事件。经过我现在的分析总结目前有如下方法:1,定时检查/proc/scsi/scsi文件此方法只能在PC上,但在嵌入式平台上不可用。2,netlink方式使用netlink.#include #include #include #include #include #include #includ转载 2015-11-10 14:34:49 · 6294 阅读 · 0 评论 -
裸机系列-UART串口
开始前,线路处于空闲状态,送出连续“1”。传送开始时首先发一个“0”作为起始位,然后出现在通信线桑的时字符的二进制编码数据。每个字符的数据位长可以约定为:5 位、6 位、7 位或 8 位,一般采用 ASCII 编码,后面时奇偶校验位,根据约定,用奇偶校验位将所传的字符中为“1”的位数凑成奇数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。最后时表示转载 2015-10-13 09:13:34 · 1469 阅读 · 0 评论 -
UATR与RS232以及COM端口的关系
UART作为硬件来看,它是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),是电脑硬件的一部分,将资料由串行传输(Serial communication)与平行传输(Parallel communication)间作传输转换。UART通常用在与其他通讯协定(如EIA RS-232)的连结上。 具体实物表现为独立转载 2015-10-13 19:58:25 · 3042 阅读 · 0 评论 -
串口通讯—通信协议
所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。目前,采用的通信协议有两类:异步协议和同步协议。同步协议又有面向字符和面向比特以及面向字节计数三种。其中,面向字节计数的同步协议主要用于DEC公司原创 2015-10-15 09:04:21 · 27335 阅读 · 0 评论 -
2013-2014嵌入式开发从业人员调查报告
调查背景在嵌入式、移动互联网、物联网等热门技术日益普及的今天,以实现智能化为核心目标的典型技术,已经成为了整个信息产业毋庸置疑的主旋律。特别是近1年,以智能家居、智能医疗、可穿戴设备等为首的大量智能硬件批量的进入到人们的生活,更让这一场智能技术的变革成为势不可挡的潮流。事实上,随着产业的变革和发展,IT行业也已经被重新定义,从Information Technology(信息技术)领域发展转载 2015-12-12 10:14:27 · 2934 阅读 · 0 评论 -
单片机C语言中while(1)的问题
单片机C语言的主程序,通常要用一个while(1)语句来让程序进入一个无限循环,目的是为了让程序一直保持在我们需要运行的情况下。 虽然这种做法毋庸置疑,在网上还是有不少朋友有疑问,如果程序不加while(1)会出现什么情况,对于这种好学精神,还是值得赞扬的,做学问就需要有追根问底的精神。 首先,大家要理解一件事情,我们编写的C语言程序,最终下载到单片机当中去,在我们单片机的程序存储空间转载 2015-12-15 17:21:51 · 19441 阅读 · 3 评论 -
什么是DMA
什么是DMA当我们向计算机中加入了一块新的声卡或其它适配卡时,安装程序可能会提醒我们应该选择一个DMA通道。那DMA是什么呢? DMA(Direct Memory Access) ,即直接存储器存取,是一种快速传送数据的机制。数据传递可以从适配卡到内存,从内存到适配卡或从一段内存到另一段内存。DMA技术的重要性在于,利用它进行数据传送时不需要CPU的参与。每台电脑主机板上都有DMA控制器,转载 2015-12-16 17:23:27 · 1131 阅读 · 0 评论 -
弄懂SPI接口
SPI(Serial Peripheral Interface,串行外设接口)是Motorola公司提出的一种同步串行数据传输标准,在很多器件中被广泛应用。1. 接口SPI接口经常被称为4线串行总线,以主/从方式工作,数据传输过程由主机初始化。如图1所示,其使用的4条信号线分别为:1) SCLK:串行时钟,用来同步数据传输,由主机输出;2) MOSI:主机输出从原创 2015-12-16 10:37:29 · 104918 阅读 · 6 评论 -
GPIO
一、什么是GPIO? 首先应该理解什么是GPIO。GPIO,英文全称为General-Purpose IO ports,也就是通用IO口。在嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备/电路,对这些设备/电路有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。而且,许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如灯亮与灭。对这些设备/电转载 2015-12-16 17:47:01 · 869 阅读 · 0 评论 -
在系统编程ISP及在应用编程IAP
在系统编程ISP及在应用编程IAP ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。IAP(In-Application Programming)指MCU可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。ISP和IAP技术是未来仪器仪表原创 2015-12-17 09:53:58 · 6613 阅读 · 0 评论 -
看门狗定时器WDT
在工业使用现场,往往会由于供电电源、空间电磁干扰或其他原因引起强烈的干扰噪声,这些干扰作用于数字元器件时,极易容易使其产生误动作,引起单片机发生“程序飞跑”或陷入死循环事故,使仪器“死机”。为了检测程序状态,采用程序监视技术,即看门狗技术,使得程序可以脱离死循环状态。在正常操作期间,一次看门狗定时器(WDT)定时时间到,将产生一次器件复位,如果通过编写程序使WDT定时时间稍大于程序执行一个转载 2015-12-17 11:14:33 · 2514 阅读 · 0 评论 -
uboot使用
我一贯认为:对于一个技术类的东西,你连用都不会用,那根本就不可能会开发。就好像一个人连Linux不会用,那还谈何开发Linux程序呢? 同样的要开发和移植U-boot,首先要对U-boot有一定的了解,起码要会使用。 所以这里我们首先熟悉一下U-boot的使用以及如何将U-boot烧入mini2440。 当然在这之前首先必须保证你的板子上已经有了U-boot。转载 2014-12-26 17:44:11 · 1210 阅读 · 0 评论 -
NorFlash与NandFlash区别及在mini2440上的应用
http://blog.youkuaiyun.com/qikaibinglan/article/details/5444170NorFlash与NandFlash区别FLASH存储器又称闪存,主要有两种:NorFlash和NandFlash,下面我们从多个角度来对比介绍一下。在实际开发中,设计者可以根据产品需求来进行闪存的合理选择。1、接口对比NorFlash带有通用的SRAM接口,可以轻松地转载 2013-04-20 20:39:17 · 1463 阅读 · 0 评论 -
U-Boot启动过程完全分析
1.1 U-Boot工作过程 U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能Ø 硬件设备初始化Ø 加载U-Boot第二阶段代码到RAM空间Ø 设置好栈Ø 跳转到第二阶段代码入口 (2)第二阶段的功能Ø 初始化本阶段使用的硬件设备Ø 检测系统内存映射Ø 将内核从Fla转载 2015-10-22 19:36:41 · 611 阅读 · 0 评论 -
基于 SquashFS 构建 Linux 可读写文件系统
在当前的嵌入式操作系统开发中,Linux 操作系统通常被压缩成 Image 后存放在 Flash 设备中。在系统启动过程中,这些 Image 被直接挂载到根文件系统, 然而这时的根文件系统是只读的, 用户不能在这个文件系统中进行任何写的操作。 如果把 Image 解压后直接拷贝到内存中,也可以实现写的功能,但是嵌入式系统一直存在内存大小方面的限制,所以将整个 Linux 系统拷入内存是不可取的。转载 2015-07-13 14:17:27 · 2366 阅读 · 0 评论 -
ARM MISP区别
问题:通常说ARM架构和MIPS架构,根本点究竟在哪一点? 回答:MIPS是第一个RISC microprocessor,ARM是CISC microprocessor,这是早期的分别。 问题:在RISC和CISC,具体指什么呢?能否深入简出的说明一下?risc = 精简指令集cisc=复杂指令集risc, 用很少的指令集做完转载 2014-12-15 14:32:14 · 1526 阅读 · 0 评论 -
ramfs, ramdisk, tmpfs
ramfs是什么ramfs是一个非常简单的文件系统,它输出Linux的磁盘缓存机制(页缓存和目录缓存)作为一个大小动态的基于内存的文件系统。通常,所有的文件由Linux被缓存在内存中。页的数据从后备存储(一般被挂载的是块设备文件系统)中读取,这些数据保持在周围以防再次需要。但是这些数据被标记为可用(空闲)以防虚拟内存系统(Virtual MemorySystem)需要这些内存作为别原创 2014-09-24 14:41:47 · 1125 阅读 · 0 评论 -
ROM、RAM、DRAM、SRAM和FLASH的区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 RAM 有两大类,一种称为静态RAM(StaticRAM/SRAM),SRAM速度非常快,是转载 2014-12-17 14:24:02 · 812 阅读 · 0 评论 -
linux下的mtd
通过/proc虚拟文件系统读取MTD分区表:cat /proc/mtd具体由linux/drivers/mtd下的mtdcore.c文件中的mtd_read_proc函数来实现。读出来的结果类似如下:dev: size erasesize namemtd0: 01000000 00020000 "boot"mtd1: 01000000 00020000转载 2014-12-17 11:47:39 · 1000 阅读 · 0 评论 -
Nand Flash,Nor Flash,CFI Flash,SPI Flash 之间的关系
前言: 在嵌入式开发中,如uboot的移植,kernel的移植都需要对Flash 有基本的了解。下面细说一下标题中的中Flash中的关系一,Flash的内存存储结构 flash按照内部存储结构不同,分为两种:nor flash和nand flash。 NorFLASH使用方便,易于连接,可以在芯片上直接运行代码,稳定性出色,传输速率高,在小容量时有转载 2014-12-17 14:36:16 · 990 阅读 · 0 评论 -
Linux内核简介
Linux体系结构Linux由用户空间和内核空间两部分组成。为什么Linux系统会被划分为用户空间与内核空间?现代CPU通常实现了不同的工作模式,以ARM为例,实现了7种工作模式:用户模式(usr)、快速中断(fiq)、外部中断(irq)、管理模式(svc)、数据访问中止(abt)、系统模式(sys)、未定义指令异常(und)Linux系统利用了CPU的这一转载 2014-12-18 14:34:42 · 693 阅读 · 0 评论 -
ramfs,tmpfs, rootfs and initramfs
ps:本文是Linux源码文档中ramfs-rootfs-initramfs.txt的一个翻译,由于水平有限译文中有许多不足之处。ramfs, rootfs and initramfsOctober 17, 2005Rob Landley 译者:wstone_h 初次发布:2009-3-8版权申明:本译文以知识共享“署名-非商业性使用-相同方式共享 2.5 中国大陆”许转载 2014-07-28 19:56:07 · 1107 阅读 · 0 评论 -
Linux 根文件系统的挂载分析
在介绍根文件系统挂载之前先介绍一些基础知识initramfs当linux内核启动后,会找到并执行第一个用户程序,一般是init。这个程序存在于文件系统当中,文件系统存在于设备上,但不知道init存在哪个设备上,于是有了内核命令列选项root=,用来指定root文件系统存在于哪个设备上。然后由于后来的设备类型越来越来多,比如可能在scsi,sata,flash这些设备,还有的转载 2014-12-22 13:59:38 · 862 阅读 · 0 评论 -
浅述SATA接口Raid、AHCI、IDE三种模式
今天在一台计算机上插上CF卡,不能工作,CF卡灯不亮。进BIOS,SATA mode从IDE改成AHCI就好了。首先说一下,关于主板的SATA接口的工作模式,BIOS中常见的选项有以下三种:RAID(部分技嘉主板叫XHD)、AHCI、IDE。 当然,并不是每一种主板的BIOS都有这三个选项,一些不支持RAID的主板,比如H61的原生SATA接口便只有AHCI和IDE。转载 2014-12-25 18:15:29 · 39225 阅读 · 2 评论 -
SecureCRT下的串口不能输入
用串口配置交换机的时候,出现的问题:用secureCRT建了一个串口COM1后,连接上开发板后,可以正确接受和显示串口的输出,但是按键输入无效。解决方法:Session Options -> Connection -> Serial -> Flow Control,将原先默认选中的 RTS/CTS取消掉,再重新connect开发板,再次连上后,此时就可以从键盘输入了。转载 2014-12-27 15:58:53 · 1453 阅读 · 0 评论 -
通过串口下载内核和文件系统
本人中午的时候发帖子询问网口不通的情况下怎样下载内核和文件系统,到现在也没人回应,还好经过一个下午的摸索,问题终于解决了,煎熬,串口下载一个10M的文件系统,居然2个多小时,周立功给的串口工具下的快,经测试丢包,所以只能用超级终端来实现网口不通的情况下下载内核和文件系统。1:打开XP下的超级终端2:启动u-boot如下:u-boot#_3:load 0x80008000(loada转载 2014-12-27 16:03:15 · 1039 阅读 · 0 评论 -
uboot简介
1、嵌入式Linux软件结构与分布在一般情况下嵌入式Linux系统中的软件主要分为以下及部分:(1)引导加载程序:其中包括内部ROM中的固化启动代码和Boot Loader两部分。而这个内部固化ROM是厂家在芯片生产时候固化的,作用基本上是引导Boot Loader。有的芯片比较复杂,比如Omap3,他在flash中没有代码的时候有许多启动方式:USB、UART或以太网等等。而S3C2转载 2014-12-26 17:51:12 · 612 阅读 · 0 评论 -
uboot简要分析、启动流程
本次移植使用的是U-boot-2009.11。 先来看看源码目录结构,再按照代码的执行顺序简单地分析源码1.U-boot源码整体框架源码解压以后,我们可以看到以下的文件和文件夹: cpu与处理器相关的文件。每个子目录中都包括cpu.c和interrupt.c、start.S、u-boot.lds。cpu.c初始化CPU、设置指令Ca转载 2014-12-26 17:53:39 · 777 阅读 · 0 评论 -
ELF文件和BIN文件
文件的内容:1. BIN文件是 raw binary 文件,这种文件只包含机器码。2. ELF文件除了机器码外,还包含其它额外的信息,如段的加载地址,运行地址,重定位表,符号表等。所以ELF文件的体积比对应的BIN文件要大。文件的执行:1. 执行raw binary很简单,只需要将程序加载到其起始地址,就可以执行; FILE *fp = fopen("vmli转载 2015-01-23 14:05:06 · 1312 阅读 · 0 评论 -
openwrt编译openswan——以及交叉编译环境配置
直接编译openwrt SDK没问题然后添加openswan模块,编译出现如下错误:/root/openwrt/kzl/openwrt/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620a/openswan-2.6.41/include/secrets.h:20:41: fatal error: gmp原创 2015-01-23 18:07:17 · 5305 阅读 · 0 评论 -
交叉编译: --host --build --target到底什么意思?
老是在做交叉编译,其实有时候对这三个东西的理解并不是那么清楚 从交叉工具链的情况来看,可以总结如下--build= 谁在这里编译? 意思说你目前的编译动作在哪里跑的 ? 如果是编译一个arm工具链,虽然工具链为为arm弄的,但是构建工具链的时候是在主机上进行的。所以 --build=i686-pc-linux-gnu--host= 目前编译出来的程序在哪里跑 ? 所转载 2015-01-23 18:20:00 · 2150 阅读 · 0 评论 -
U-boot的环境变量: bootcmd 和bootargs
u-bootcmd 前面有说过bootcmd是自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使用的那种参数。u-bootargs bootargs是环境变量中的重中之重,甚至可以说整个环境变量都是围绕着bootargs来设置的。bootargs的种类非常非常的多,我们平常只是使用了几种而已,感兴趣的可转载 2014-12-26 17:52:43 · 641 阅读 · 0 评论