嵌入式
文章平均质量分 88
shanzhizi
这个作者很懒,什么都没留下…
展开
-
Linux下分析bin文件的10种方法
忍不住要把这个文章给转载了:http://www.embeddedlinux.org.cn/emb-linux/entry-level/202005/17-9147.html二进制文件是我们几乎每天都需要打交道的文件类型,但很少人知道他们的工作原理。这里所讲的二进制文件,是指一些可执行文件,包括你天天要使用的 Linux 命令,也是二进制文件的一种。Linux 系统给我们提供了非常多用于分析二进制文件的工具,不管你在 Linux 下从事的是何种工作,知道这些工具也会让你对你的系统更加了解。在本文转载 2020-10-20 17:43:07 · 2001 阅读 · 0 评论 -
uboot编译配置过程分析
说明:因为uboot2010.12有点小bug,http://my.chinaunix.net/space.php?uid=24319701&do=blog&id=125381,这篇博客有讲怎么克服,懒的改了,换成uboot2010.09.以后都是基于uboot2010.09版本。根据顶层的README说明,For all supported boards there are ready-to-u原创 2014-08-14 15:37:48 · 2312 阅读 · 0 评论 -
uboot编译链接过程
配置完之后,执行make即可编译,从makefile中可以了解uboot使用了哪些文件、哪个文件先执行,可执行文件占用内存的情况。 下面这个再加上韦东山大哥书上的讲解,就基本明白了,下面的来自博客:http://blog.csdn.net/wxdcxp/archive/2009/11/18/4828011.aspxU-BOOT是一个LINUX下的工程,在编转载 2014-08-14 15:42:39 · 949 阅读 · 0 评论 -
uboot移植之uboot和kernel的参数传递
从uboot启动内核的形式theKernel (0, machid, bd->bi_boot_params)可以看出uboot给内核传递了3个参数,第1个是0,第2个是机器码,第3个是参数列表在SDRAM的起始位置刚好满足一下调用内核的条件• R0=0。• R1=机器类型ID;• R2=启动参数标记列表在RAM 中起始基地址①在 uboot/board/tekkaman转载 2014-08-22 17:17:47 · 1477 阅读 · 0 评论 -
嵌入式Linux使用Busybox init进程启动过程分析
一、Busybox Busybo是一个遵循GPLv2协议的开源项目。Busybox将众多的Linux命令集合进一个很小的可执行程序中,可以用来替换GNU fileutils shellutils等工具集。Busybox中各种命令与相应的GNU工具相比,所能提供的选项较少,但是能够满足一般应用。Busybox为各种小型 的或者嵌入式系统提供了一个比较完完全的工具集。Busybox在编写原创 2014-09-05 16:33:25 · 9800 阅读 · 0 评论 -
深入剖析三层交换机的工作过程
路由器的三层转发主要依靠CPU进行,而三层交换机的三层转发依靠ASIC芯片完成,这就决定了两者在转发性能上的巨大差别。当然,三层交换机并不能完全替代路由器,路由器所具备的丰富的接口类型、良好的流量服务等级控制、强大的路有能力等仍然是三层交换机的薄弱环节。目前的三层交换机一般是通过VLAN来划分二层网络并实现二层交换的,同时能够实现不同VLAN间的三层IP互访。在讨论三层交换机的转发原理之前有必要交转载 2014-04-03 16:13:45 · 19949 阅读 · 3 评论 -
汇编运行地址,链接地址,加载地址,存储地址 位置无关码、位置有关码
搞ARM开发时,在连接目标代码会提到运行地址和加载地址。这两者有什么区别呢?其次,网上也有说链接地址和存储地址,那么这四个地址之间有什么区别?1、运行地址链接地址:他们两个是等价的,只是两种不同的说法。2、加载地址存储地址:他们两个是等价的,也是两种不同的说法。 运行地址:程序在SRAM、SDRAM中执行时的地址。就是执行这条指令时,PC应该等于这个地址,换句话说,转载 2014-08-05 16:39:22 · 7661 阅读 · 7 评论 -
ubuntu下如何安装NFS服务用于文件共享
首先要配置好主机的NFS服务器。 1、执行以下命令安装NFS服务,安装后会自动运行(一般主机都已经安装该服务)$sudo apt-get install nfs-kernel-server portmap 2、他的配置文件为/etc/exports, 用vi编辑器编辑,增加内容如下,以后将通过网络文件系统访问新增加的目录,如/work/nfs_root目录。转载 2012-12-13 09:51:08 · 1391 阅读 · 0 评论 -
arm交叉编译工具链的制作
一个交叉编译工具链只有自己动手制作以后才会真de原创 2014-06-25 12:32:51 · 1046 阅读 · 0 评论 -
ARM GCC 内嵌(inline)汇编手册
ARM GCC 内嵌(inline)汇编手册 关于这篇文档这篇文章是本人为方便各位业界同仁而翻译,方便大家开发底层代码使用,转载请注明出处,谢谢。要是你E文功底好,本人还是建议阅读E文版的。http://www.ethernut.de/en/documents/arm-inline-asm.html 对于基于ARM的RISC处理器,GNU C编译器提供了在C代码中内嵌汇编转载 2014-08-15 13:39:38 · 1486 阅读 · 0 评论 -
BSS段为什么需要初始化
http://www.cnblogs.com/amanlikethis/p/3384743.html我们都知道bss段需要初始化,但是这是为什么呢? 通过浏览资料,我们都会发现,bss段是不会出现在程序下载文件(*.bin *.hex)中的,因为全都是0。如果把它们出现在程序下载文件中,会增加程序下载文件的大小。实际应用中,通常只需要把bss段的起始地址和结束地址保存起来,转载 2014-08-15 11:22:40 · 6250 阅读 · 0 评论 -
安装交叉编译工具arm-linux-gcc命令未找到的问题
arm-linux-gcc -v 查看交叉编译工具版本号$ arm-linux-gcc -varm-linux-gcc:未找到命令$ cd /usr/local/arm/4.5.1/bin$ ./arm-linux-gcc -vbash: ./arm-linux-gcc: 没有那个文件或目录$ ./arm-none-linux-gnueabi-gcc -vbash: ./arm-none...原创 2018-06-19 15:43:39 · 4582 阅读 · 1 评论 -
从一个简单的实例来了解PE文件
文中RegisterMe及原视频下载地址:http://pan.baidu.com/s/1bnqOgnt打开这个RegisterMe.exe程序,会出现如下烦人的消息框引入目标:去掉烦人的消息框工具:Ollydbg转载原文:http://www.freebuf.com/articles/system/86596.html转载 2016-04-07 15:14:54 · 1068 阅读 · 0 评论 -
推荐一篇非常不错的关于Linux系统硬盘、分区及文件系统的基本概念介绍文章
原文:RHEL6入门系列之四,磁盘分区、文件系统和目录结构摘要:在安装操作系统之前,一般需要先对硬盘进行分区。我们都知道硬盘分区包括主分区、扩展分区、逻辑分区三种类型,之所以会有这样的区分,是因为在硬盘的主引导扇区中用来存放分区信息的空间只有64个字节(主引导扇区一共只有512字节空间),而每一个分区的信息都要占用16字节空间,因而理论上一块磁盘最多只能拥有4个分区,当然这原创 2015-12-18 10:17:01 · 864 阅读 · 0 评论 -
浅析 Linux 初始化 init 系统,第 3 部分: Systemd
Systemd 的简介和特点Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。systemd 和 ubuntu 的 upstart 是竞争对手,预计会取代 UpStart,实际上在作者写作本文时,已经有消息称 Ubuntu 也将采用 systemd 作为其标准的系统初始化系统。Systemd转载 2015-06-15 21:08:53 · 859 阅读 · 0 评论 -
浅析 Linux 初始化 init 系统,第 2 部分: UpStart
转载自:http://www.ibm.com/developerworks/cn/linux/1407_liuming_init2/index.htmlUpstart 简介假如您使用的 Linux 发行版是 Ubuntu,很可能会发现在您的计算机上找不到/etc/inittab 文件了,这是因为 Ubuntu 使用了一种被称为 upstart 的新型 init 系统。开发转载 2015-06-15 09:43:05 · 768 阅读 · 0 评论 -
浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
转载自:http://www.ibm.com/developerworks/cn/linux/1407_liuming_init1/index.html从 sysvinit 到 systemd近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经淡出历史舞台,新的 init 系统 UpStart 和 systemd 各有特点,而越来越转载 2015-06-15 09:39:57 · 1461 阅读 · 0 评论 -
使内核支持NOR FLASH分区
使内核支持NOR FLASH分区由于华恒的NOR FLASH的默认分区是0x00000000 – 0x00040000 “ppcboot”0x00040000 – 0x00140000 “kernel”0x00140000 – 0x00540000 “ramdisk”0x00540000 – 0x00740000 “cramfs”0x00740000 – 0x0080000转载 2014-08-28 11:34:24 · 2452 阅读 · 0 评论 -
Glibc Binutils GCC 配置选项简介
作者:金步国版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可 以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。其他作品本文作者十分愿意与他人共享劳动成果,转载 2014-06-25 09:59:54 · 1844 阅读 · 0 评论 -
Ubuntu下安装配置tftp服务
在向大家详细介绍tftp之前,首先让大家了解下Ubuntu tftp,然后全面介绍Ubuntu tftp,希望对大家有用。Ubuntu 团队对它的使用者公开的承诺:Ubuntu 永远免费 , 并且对于 "企业版本" 没有任何额外的费用, 在同样的自由团队上,将最好的工作成果带给每一个人。配置Ubuntu tftp服务的步骤:1、安装相关软件包:Ubuntu tftp(服务端原创 2014-04-09 15:11:29 · 2456 阅读 · 0 评论 -
busybox下的tftp命令使用详解
Busybox下的tftp命令可以用来进行单文件传输。使用的时候,是把电脑作为服务器Server,Busybox作为客户端Client,使用tftp命令可以实现从Server下载单个文件到Client,或者从Client上***个文件到Server。 首先来了解一下tftp命令参数,在Busybox下输入tftp –help,得到tftp使用的详细参数,如下图转载 2014-04-09 13:41:49 · 22047 阅读 · 0 评论 -
关于at91sam9260的启动概述
一、 说明:Bootstrap启动代码是官方提供的一级启动代码,包括汇编和C语言两部分组成。对AT91SAM9260来说编译完成后,代码长度必须小于4KB,烧写到dataflash中的0x00000000.二、系统上电准备Bootstrap启动。当系统启动选择片内启动(BMS=1)时,程序上电后,内部ROM被映射在0x000000地址,启动内部ROM的的固化程序,自动将检测datafl原创 2013-08-28 16:15:41 · 2117 阅读 · 0 评论 -
移植at91sam9260从norflash启动
先贴一下u-boo1的下载地址:ftp://ftp.denx.de/pub/u-boot/at91的补丁地址:ftp://www.at91.com/pub/uboot/ATMEL官方的AT91BootStrap不支持NorFlash,可以到这里下载at91sam的BootStrap:ftp://www.at91.com/如果需要支持NorFlash就要自己动手了原创 2013-06-07 10:32:57 · 2119 阅读 · 0 评论 -
关于S3C2440存储器地址分配和启动流程分析
学习嵌入式,最开始应该了解就是地址空间的分配,真正搞清楚每个地址代表的位置,才有了入门的基础。1、地址分配(27根线如何寻找1G空间)S3C2440集成了丰富了外设控制器(LCD控制器、USB Device控制器、USB Host控制器、NAND FLASH控制器、I2C控制器、SPI控制器等)。要控制这些外设就要设置相应控制器的寄存器以产生相应的驱动时序。学习S3C2440,主要是如何配原创 2013-06-06 15:58:00 · 3929 阅读 · 0 评论 -
关于51单片机存储空间的说明---它是如何存储程序和数据的呢?
来源不详,看到了贴出来,想学嵌入式,刚入门嵌入式的,在学校没学明白51的朋友应该会受益。在学校很少用到外扩ROM/RAM的情况,都是用C语言编程,不差空间,代码太大了,买个大ROM的芯片就行了。现在工作了,单位是做SoC的,采用了51的IP核,才算对51的代码/数据空间有了清晰的认识。MCS-51使用哈弗结构,它的程序空间和数据空间是分开编址的,即各自有各自的地址空间,互不重叠。所以即使地转载 2013-05-31 09:47:08 · 9253 阅读 · 1 评论 -
linux驱动编程入门---hello,kernel
学习linux内核模块编程,第一个小程序当然是hello,kernel!了,这应当算是一个惯例了。以前大三的时候在实验课上做过模块编程,记得当时还是许师兄带我们的实验,不过现在又忘了。晚上试了试,很快就运行成功了,不过还是出现了一些问题。现在将我的步骤记录如下,供和我一样的初学者学习。1.首先编写hello.c文件01#include转载 2013-02-28 16:30:29 · 3542 阅读 · 0 评论 -
嵌入式linux学习路线参考
整理了嵌入式linux学习路线供参考,希望对您有所参考价值!一、linux入门目前嵌入式主要开发环境有 Linux、Wince等;Linux因其开源、开发操作便利而被广泛采用。而Linux操作系统也只是一个简单的操作系统,简单的使用对于嵌入式开发人 员来说价值并不很高,真正有价值的是掌握Linux的基本服务和Linux的设计理念、思想,这对于嵌入式开发人员的长期发展是很极其重要的。Li原创 2013-01-03 16:06:11 · 3396 阅读 · 0 评论 -
优化VMware提高虚拟机运行速度的技巧
vmware虚拟机如何设置不当的话会造成运行速度慢,并影响主机运行,甚至会出现死机。一下是提高vmware虚拟机运行速度的几个技巧,希望我的博客对您有用。阿里云最高1888通用代金券,送给你!文章来自:http://blog.csdn.net/shanzhizi1 修改preference中的选项(全局设置)a 进入设置界面的方法如下图所示...转载 2012-12-14 10:20:31 · 169135 阅读 · 19 评论 -
802.1Q Vlan原理简介
在数据通信和宽带接入设备里,只要涉及到二层技术的,就会遇到VLAN。而且,通常情况下,VLAN在这些设备中是基本功能。所以不管是刚迈进这个行业的新生,还是已经在这个行业打拼了很多年的前辈,都要熟悉这个技术。在论坛上经常看到讨论各种各样的关于VLAN的问题,在工作中也经常被问起关于VLAN的这样或那样的问题,所以,有了想写一点东西的冲动。大部分童鞋接触交换这门技术都是从思科技术开始的,讨论的时候原创 2012-11-13 08:41:47 · 8909 阅读 · 1 评论 -
at91sam926X的GPIO中断
先上一个代码实例:static int gpio_irq_init(void){ int ret; ret = gpio_request (AT91_PIN_PC6, "IRQ"); /* GPIO request*/ if (ret) { printk ("Unable to request PC6\n"); } at91_set_GPIO原创 2013-09-04 16:39:13 · 2921 阅读 · 0 评论 -
使用crosstool-ng制作交叉编译工具链
交叉编译器可以用现成的,比如CodeSourcery制作的交叉编译器,也可以自己制作,一般是用kernel+gcc+glibc+binutils的源码包来编译安装,后来由于这个太麻烦于是就有类似crosstool这样的自动化配置工具。现在之所以用crosstool-ng是因为crosstool-ng是新的用来建立交叉工具链的工具,它是crosstool的替换者。crosstool的gcc版本只原创 2014-01-09 16:43:33 · 1711 阅读 · 0 评论 -
使用内存做Linux下的/tmp目录
在/etc/fstab中加入一行:none /tmp tmpfs default 0 0或者在/etc/rc.local中加入mount tmpfs /tmp -t tmpfs -o size=128m注:size=128m 表示/tmp最大能用128m不管哪种方式,只要linux重启,/tmp下的文件全部消失原创 2014-04-08 18:36:32 · 9638 阅读 · 0 评论 -
Linux移植添加norflash MTD分区
开发板上只有Nor Flash,所以为了实现层次文件系统,需要为Linux2.6.20增加Nor Flash MTD驱动支持。其实工作量并不大,因为已经有现成的程序可供参考。 MTD的驱动程序都集中在drivers/mtd里面。我们需要做的,仅仅是在drivers/mtd/maps下增加自己的分区表。因为有参考的代码,所以比较容易。 (1)构建配置选项原创 2014-01-23 16:33:34 · 7129 阅读 · 0 评论 -
at91sam9260 bootstrap 3.2移植
第一步:下载源代码从下面的网址中下载最新的代码:ftp://www.at91.com/pub/at91bootstrap/第二步:开发板的硬件:CPU AT91SAM9260SDRAM MT48LC16M 1片(32MB 16bit)NANDFLASH K9F1208U0c(64MB)BOO转载 2014-01-16 16:26:07 · 4142 阅读 · 0 评论 -
交叉编译工具的安装
一、安装交叉编译器 1)交叉编译器使用CodeSourcery提供的符合EABI标准的arm-none-linux-gnueabi-gcc-4.3.3交叉编译器,下载地址: http://www.codesourcery.com/sgpp/lite/arm/portal/package4571/public/arm-none-linux-gnueabi/arm-2009q1-203-arm转载 2014-01-16 16:23:42 · 1239 阅读 · 0 评论 -
构建嵌入式Linux根文件系统jffs2
移植好了UBOOT和内核之后,便是构建linux根文件系统了。以http://blog.chinaunix.net/u1/34474/showart_485837.html文章为基础进行修改。1)创建根文件系统的基本目录结构。我把这个过程做成了shell脚本(文件名为 mkroot) ,很方便!#! /bin/sh echo "creatint rootfs转载 2014-01-24 14:52:15 · 1516 阅读 · 0 评论 -
linux 内核移植和根文件系统的制作
1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起。 1.1.1 Linux版本 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如2.6.29.1内核的Makefile中: VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 2转载 2014-01-24 10:57:56 · 1212 阅读 · 0 评论 -
二进制可执行文件到底是怎么回事?--PE 、ELF、objcopy
最近接触到gcc编译,对ld这个东东产生了疑惑,编译出来的文件到底是个什么东西?ELF文件到底是什么格式,它又是怎么被装载运行的?后来发现原来有一本书:程序员自我修炼--链接、装载与库。好书,难得的好书啊!感谢作者! 另外还有两个资料:ELF文件格式和PE文件格式译文。原创 2014-01-15 10:31:46 · 1822 阅读 · 0 评论 -
u-boot编译过程分析
u-boot下载源码后,直接make all是编译不过的。至少需要两步,make xxxx_configmake all刚开始接触u-boot总是存在这样的疑问,../include/configs/mini2440.h是如何关联到../board/mini2440.c中的?显然他们并没有在源码中有直接的包含关系。编译u-boot时,输入make mi原创 2014-01-13 16:46:30 · 1290 阅读 · 0 评论 -
SMI总线接口,SMI帧结构在MDC和MDIO接口上的流程简述
SMI全称是串行管理接口(Serial Management Interface)。是MII接口中的管理接口。SMI接口包括两根信号线:MDC和MDIO,通过它,MAC层芯片(或其它控制芯片)可以访问物理层芯片的寄存器(前面100M物理层芯片中介绍的寄存器组,但不仅限于100M物理层芯片,10M物理层芯片也可以拥有这些寄存器),并通过这些寄存器来对物理层芯片进行控制和管理。SMI管理接口如原创 2012-11-09 09:43:03 · 7039 阅读 · 0 评论