
嵌入式开发
文章平均质量分 81
danforn
纳言敏行,随遇而安
展开
-
如何在嵌入式LINUX中添加设备驱动程序
驱动程序的使用可以按照两种方式编译,一种是静态编译进内核,另一种是编译成模块以供动态加载。由于uClinux不支持模块动态加载,而且嵌入式 LINUX不能够象桌面LINUX那样灵活的使用insmod/rmmod加载卸载设备驱动程序,因而这里只介绍将设备驱动程序静态编译进uClinux 内核的方法。 下面以UCLINUX为例,介绍在一个以模块方式出现的驱动程序test.c基础之上,将其编译进内核的一原创 2006-10-31 14:56:00 · 1684 阅读 · 0 评论 -
BusyBox制作tiny linux
制作启动盘的过程省去了,这个网上可以找到!通过在硬盘上安装linux得到linux的分区:/dev/hda1 /boot/dev/hda2 //dev/hda3 swapbusybox制作实际操作过程:下载好busybox的源文件,最好到busybox的官方网站上面去下,这样还可以看到很多文档我下载的是busybox-1.00-rc3版本,也是它的最新版tar zxvf busybox-1.00-转载 2006-12-07 17:49:00 · 2014 阅读 · 0 评论 -
Busybox制作嵌入式Linux的文件系统
1busybox简介 熟悉嵌入式Linux的人对busybox一定不会陌生。它被非常形象地称为嵌入式Linux系统中的“瑞士军刀”,因为它将许多常用的UNIX命令和工具结合到了一个单独的可执行程序中。虽然与相应的GNU工具比较起来,busybox所提供的功能和参数略少,但在比较小的系统(例如启动盘)或者嵌入式系统中,已经足够了。 busybox在设计上就充分考虑了硬件转载 2006-12-07 17:55:00 · 2728 阅读 · 0 评论 -
ARM嵌入式系统初始化过程
基于ARM内核微处理器的系统一般为复杂的片上系统,这种复杂系统的多数硬件模块都是可配置的,需要软件设置为特定的工作状态,因此在用户的应用程序之前,需要有一些专门的代码完成对系统的初始化。由于这类代码直接面对ARM处理器内核和硬件控制器,一般都使用汇编语言完成。初始化代码完成的操作与具有的硬件平台相关,但一般包括一下的内容: --初始化异常向量表(中断向量表)--初始化存储器系统--初始原创 2006-12-12 14:19:00 · 2130 阅读 · 0 评论 -
uClinux移植概述
1.建立开发环境 作为uClinux系统的移植和开发的主机最好使用Linux操作系统,如果选择Windows平台作为开发平台则需要Cygwin软件包的支持。在这里我们选用的开发平台是Fedora Core 2,内核版本为2.4.x。在进行uClinux的移植和开发之前,我们需要建立系统的交叉编译环境,因为做为主机我们使用的是IA32体系结构的处理器,而开发板我们才用的是ARM体系结构的处转载 2006-12-20 09:57:00 · 2035 阅读 · 0 评论 -
U-BOOT的启动流程及移植
1 Bootloader及u-boot简介Bootloader 代码是芯片复位后进入操作系统之前执行的一段代码,主要用于完成由硬件启动到操作系统启动的过渡,从而为操作系统提供基本的运行环境,如初始化CPU、 堆栈、存储器系统等。Bootloader 代码与CPU 芯片的内核结构、具体型号、应用系统的配置及使用的操作系统等因素有关,其功能类似于PC机的BIOS程序。由于bootloader和CP转载 2007-01-04 10:32:00 · 1140 阅读 · 0 评论 -
移植uboot到ARMer9开发系统上
首先了解ARMer9开发系统硬件设计上和三星原装SMDK2410之间的区别。让uboot在ARMer9开发系统上跑起来,目前只需要关注如下的硬件区别,解决了下面这个问题,uboot就可以在ARMer9开发系统上正常地从串口输出,进入提示符。很多命令都可以使用,当然有些命令需要做修改。 SMDK2410 : nor flash 是AMD的1M的;ARMer9: 是Intel E28F12转载 2007-01-04 10:33:00 · 1522 阅读 · 0 评论 -
ARM Boot示例
程序主要作用是通过串口下载VxWorks到ARM Flash ROM,主要过程是初始化ARM硬件,初始化串口UART1,从串口接收VxWorks image到DRAM,初始化Flash ROM.最后将DRAM中的VxWorks写入Flash ROM. ARM 串口与PC机串口连接,由PC机下载(download)VxWorks 到主板Flash ROM.该程序对学习和理解ARM编程很转载 2007-01-04 10:47:00 · 1170 阅读 · 0 评论 -
U-Boot 在44B0X 开发板上的移植以及代码分析
1. u-boot 介绍u-boot 是一个open source 的bootloader,目前版本是0.4.0。u-boot 是在ppcboot 以及armboot 的基础上发展而来,虽然宣称是0.4.0 版本,却相当的成熟和稳定,已经在许多嵌入式系统开发过程中被采用。由于其开发源代码,其支持的开发板众多。唯一遗憾的是并不支持我们现在学习所用samsung 44B0X 的开发板。为什么我们需转载 2007-01-04 10:37:00 · 1266 阅读 · 0 评论 -
在AT91RM9200上移植u-boot
================== 准备工作=================1.阅读at91rm9200 官方文档有关“引导程序”的章节对at91rm9200的启动流程有个大概的了解。at91rm9200引导流程图Device Setup||Boot SPI DataFlash Boot --> Download from DataFlash --> run||TWI EEPROM Boot转载 2007-01-04 10:41:00 · 1658 阅读 · 0 评论 -
嵌入式uClinux软硬件开发环境
uClinux就是Micro-Control- Linux,它也是一个开放源码的项目,uClinux的源代码和开发工具可以免费从http://www.uClinux.org上下载得到。 uClinux是专为那些没有MMU(内存管理单元)的嵌入式处理器开发的,和主流的Linux相比,uClinux有以下的特点: 1.简化了内核加载方式,uClinux的内核可以在Flash上直接运行:就是把uCli转载 2007-01-02 18:00:00 · 1906 阅读 · 0 评论 -
简述U-boot的修改
uboot是一个通用的免费开放源码的boot程序,支持很多的处理器。以下是现在网上下载一个u-boot-1.1.1版本,用于at91rm9200系统的修改的例子。最后在redhat8.0上,用gcc2.95编译通过。在网上下载了uboot-1.1.1版本。要用于自己的at91rm9200的系统,这个系统的情况是:SDRAM: 32Mbytes NCS1FLASH: 8Mbytes NCS0涉及转载 2007-01-04 10:49:00 · 2197 阅读 · 0 评论 -
高效率嵌入式程序开发
引言 在多媒体、通信等计算复杂度高的应用中,为了满足制造费用、功耗、性能以及实时性等诸多限制条件的要求,嵌入式系统程序往往需要特殊设计。这使得设计师在设计面向特定应用的嵌入式软件时,需要有一套切实可行的编程准则。而在实际程序设计中,工程师尤其需要考虑对变量的使用和循环程序的处理。 变量使用 在进行实际程序开发时,变量的使用至关重要,其中使用全局变量比向函数传递参数更加有效,这样原创 2007-08-01 11:03:00 · 3430 阅读 · 1 评论 -
BusyBox简化嵌入式Linux系统
BusyBox 是很多标准 Linux® 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet(不过它的选项比传统的版本要少);有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。本文将探索 BusyBox 的目标,它是如何工作的,以及为什么它对于内存有限的环转载 2006-12-07 17:04:00 · 1139 阅读 · 0 评论 -
uClinux下使用MTD和jffs2方法
uCLinux默认的根文件系统是romfs,由于romfs是一个只读的文件系统,当你的嵌入式设备动态的修改了一些文件,它无法保存。虽然uClinux在缺省配置下在DRAM中开辟了一块区域用作 RAMDISK保存生成的文件,但是当设备在复位后所有在DRAM的数据都将消失。怎么才能保存动态生成的数据,如果需要存储的文件容量又不大(1M左右),JFFS是一个不错的选择。它可以动态的把DRAM中的数据烧入转载 2006-12-07 12:10:00 · 2332 阅读 · 0 评论 -
嵌入式linux应用
一、嵌入式综述,基本概念:1.GPL:连接了它的库就要一样GPL;LGPL:修改了,才要LGPL;总的来说,GPL在保护自由软件上更加严格些。2.ARM LINUX:特指在ARM平台上运行的LINUX移植版本,带MMU的;uCLinux:一个全新的linux,而不是linux的移植版本,不带MMU,对内存空间不进行保护,多个进程共享一个运行空间;RT-Linux/RTAL:支持硬实时的linu转载 2006-10-28 11:18:00 · 1383 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之性能优化篇
使用宏定义 在C语言中,宏是产生内嵌代码的唯一方法。对于嵌入式系统而言,为了能达到性能要求,宏是一种很好的代替函数的方法。 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个: 错误做法: #define MIN(A,B) ( A <= B ? A : B ) 正确做法: #define MIN(A,B) ((A)<转载 2006-11-16 11:49:00 · 1231 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之屏幕操作篇
汉字处理 现在要解决的问题是,嵌入式系统中经常要使用的并非是完整的汉字库,往往只是需要提供数量有限的汉字供必要的显示功能。例如,一个微波炉的LCD上没有必要提供显示"电子邮件"的功能;一个提供汉字显示功能的空调的LCD上不需要显示一条"短消息",诸如此类。但是一部手机、小灵通则通常需要包括较完整的汉字库。 如果包括的汉字库较完整,那么,由内码计算出汉字字模在库中的偏移是十分转载 2006-11-16 11:51:00 · 1009 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之键盘操作篇
功能键的问题在于,用户界面并非固定的,用户功能键的选择将使屏幕画面处于不同的显示状态下。 处理功能键 功能键的问题在于,用户界面并非固定的,用户功能键的选择将使屏幕画面处于不同的显示状态下。例如,主画面如图1: 图1 主画面 当用户在设置XX上按下Enter键之后,画面就切换到了设置XX的界面,如图2: 图2 切换到设转载 2006-11-16 11:54:00 · 910 阅读 · 0 评论 -
Linux驱动入门
内核版本: 2.4.22阅读此文的目的: 学会编写Linux设备驱动。阅读此文的方法: 阅读以下2个文件: hello.c,asdf.c。此文假设读者:已经能用C语言编写Linux应用程序,理解"字符设备文件, 块设备文件, 主设备号, 次设备号",会写简单的Shell脚本和Makefile。1. "hello.c"--------------------------------/** 这是我们的转载 2006-11-16 12:16:00 · 1474 阅读 · 0 评论 -
UC/OS和uClinux的比较
引言随着现代计算机技术的飞速发展和互联网技术的广泛应用,从PC时代过渡到了以个人数字助理、手持个人电脑和信息家电为代表的3C(计算机、通信、消费电子)一体的后PC时代。后PC时代里,嵌入式系统扮演了越来越重要的角色,被广泛应用于信息电器、移动设备、网络设备和工控仿真等领域。嵌入式系统是以嵌入式计算机为核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、体积、成本、功耗转载 2006-11-13 18:15:00 · 1059 阅读 · 0 评论 -
BSP概念解析
BSP(Board Support Package)是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写BS原创 2006-11-30 12:03:00 · 1108 阅读 · 0 评论 -
关于bootloader
本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念、软件设计的主要任务以及结构框架等内容。 1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系 统从软件的角度看通常可以分为四个层次: 1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两转载 2006-12-01 16:15:00 · 1162 阅读 · 0 评论 -
嵌入式BootLoader设计实现
本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念、软件设计的主要任务以及结构框架等内容。 一、引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。转载 2006-12-06 16:24:00 · 1352 阅读 · 0 评论 -
Linux下PCI设备驱动程序开发
PCI是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。Linux的内核能较好地支持PCI总线,本文以Intel 386体系结构为主,探讨了在Linux下开发PCI设备驱动程序的基本框架。一、PCI总线系统体系结构PCI是外围设备互连(Peripheral Component Interconnect)的转载 2006-12-07 11:59:00 · 1862 阅读 · 0 评论 -
嵌入式linux移植过程中“串口终端”问题解决方案
Pxa27x的板子,最近在移植到linux2.4.21过程时,碰到一个串口终端无法输出信息的问题,bootloader引导时能够输出信息,但引导kernel时就停在那了,没有任何显示。在网上搜索到一些资料,也排除了那些可能的原因,但还是没能够解决这个串口终端输出的问题。通过分析bootloader到kernel内核引导的这一过程,最后把目标锁定在了kernel解压缩的过程中,估计大伙使用的ke转载 2006-12-07 12:02:00 · 4017 阅读 · 2 评论 -
ATMOS-嵌入式实时控制操作系统
1介绍1.1 目标 ATMOS是一个小的嵌入式系统.它能控制一个或者多个网络环境下的硬件设备,来实现特定的功能。ATMOS系统没有存储管理和用户的概念,通常一直在运行,向各种进程,协议,设备静态分配资源。 ATMOS主要使用在ATM网路相关的开发系统中。ATMOS已经用于构建很多系统,从PC网络适配器到ATM switches1.2 设计要求 简单 代码容翻译 2007-09-13 17:09:00 · 1548 阅读 · 0 评论