导航:首页 > 源码编译 > redboot编译

redboot编译

发布时间:2022-06-15 08:23:17

Ⅰ 红旗linux 6.0SP1可不可以装PCB软件

可以的。
免费开源的有:gEDA;KICAD.
商业软件:小型 Eagle(我现在用的是Eagle 5.10.0,当然是要和谐的,如果有钱就买正版吧);
大型 Candence(世界第一,价格也第一);
当然在PCB制造上都没有问题的,都支持导出Gerber文件,工厂就凭Gerber文件给你制造了。

Ⅱ 在Red Hat linux7上怎样用vi编译器打代码,还有怎样用GDB调试,有大神可以指导一下吗,谢谢!

课程安排课程简介第一周嵌入式C语言编程基础主要介绍在嵌入式开发编程中C语言的重要概念和编程技巧中的重点难点,以复习串讲和实例分析的形式,重点介绍包括函数与程序结构,指针、数组和链表,库函数的使用等知识。第二周Linux操作和编程基础主要介绍Linux的基本命令和基础编程知识,包括Linux的文件操作和目录操作命令,VI编辑器,GCC编译器,GDB调试器和Make项目管理工具等知识。第三周Linux上C强化编程训练主要包括整数算法训练,递归和栈编程训练,位操作训练,指针训练,字符串训练和常用C库函数编程接口实践,强化学员对Linux下基本编程开发的理解和编码调试的能力。第四-七周Linux环境高级编程及项目开发编程实践主要包括系统编程(信号/系统调用/管道/FIFO/消息队列/共享内存等),文件I/O编程(文件描述符/文件读写接口/原子操作/阻塞与非阻塞IO等),多任务和多线程编程(进程标识/用户标识/fork与vfork/多线程概念/线程同步等),网络编程(网络基本概念/套接口编程/网络字节次序/Client/Server结构/UDP编程);掌握Linux下Socket编程的开发流程,熟悉网络编程的调用接口函数和相关数据结构,使学员初步具备在Linux上进行系统编程开发的能力。同时综合之前所学内容和编程技术,以小组为单位进行一个团队合作项目的开发,考核内容包括文件I/O编程,多线程编程,网络编程和项目文档编写。期中考试第八-九周嵌入式处理器体系结构及编程实践主要介绍ARM、MIPS、PowerPC等体系结构及其基本编程知识,包括指令分类,寻址方式、指令集、存储系统、异常中断处理、汇编语言以及C\C++和汇编语言的混合编程等知识。同时结合ARM嵌入式开发板硬件设计原理和基本硬件设计流程,分析各种外设的工作原理和驱动机制,并自己动手实践完成一个ARM开发板上的编程大作业。第十-十一周嵌入式Linux开发基础及高级应用主要介绍嵌入式Linux开发应用程序的基本流程和知识,包括嵌入式Linux基本概念和开发流程、Bootloader工作原理、内核裁减配置和交叉编译、根文件系统制作、网络编程及图形界面和数据库开发等知识。同时独立完成一个基于嵌入式LinuxGUI的应用编程大作业。第十二-十三周嵌入式Linux驱动理论及驱动程序开发实践主要介绍嵌入式Linux上驱动程序开发规范,包括设备驱动程序概念、字符设备驱动程序、块设备与网络设备、网卡驱动以及常用嵌入式设备驱动开发等知识。同时独立实现两种嵌入式设备驱动程序的编写,包括驱动模块的调试和加载以及完整的项目开发文档的编写。第十四-十五周嵌入式Linux项目团队开发实践锻炼主要包括设计并实现一个真实和完整的嵌入式项目的开发流程,涉及到数据采集、网络通讯、图形用户界面显示以及嵌入式数据库存储系统等多种嵌入式Linux编程技术。要求学员建立起团队开发和协同工作的企业项目开发模式的概念和流程,强化学员对编写项目概要设计文档和详细设计文档的理解,为就业前的职业技能和素质训练做好充分准备。毕业典礼培训目标学习内容掌握程度掌握三种编程语言C语言精通C++语言了解ARM汇编语言熟悉掌握两种嵌入式Linux操作系统Linux精通uCLinux精通掌握两种嵌入式实时操作系统VxWorks熟悉uC/OS-II熟悉掌握三种处理器体系结构ARM体系结构精通MIPS体系结构熟悉PowerPC了解掌握五种ARM核处理器SamsungS3C2410/S3C44B0精通IntelXScalePXA255精通PhilipsLPC22xx精通EP7312熟悉MIPSGodson龙芯熟悉掌握两种硬件设计工具CandencePCB熟悉Protel了解掌握两种Linux下编辑软件VI精通EMACS了解掌握两种串口通讯工具超级终端(Windows)熟悉MiniCOM(Linux)熟悉掌握三种Flash烧写工具FlashProgrammer(GUI)熟悉JFlash烧写软件及原理精通SJF系列烧写软件及原理精通掌握两种调试工具JTAG在线调试器熟悉SkyEye仿真调试工具熟悉掌握两种集成开发环境ARMADS1.2精通K-DevelopIDE熟悉掌握一种源代码版本管理工具CVS熟悉掌握嵌入式Linux整体开发流程熟悉GNU交叉编译器使用Cross-compiler-gcc/g++精通LinuxMakefile组织结构精通Bootloader启动代码u-Boot精通RedBoot熟悉内核编译配置参数设置精通内核调试熟悉文件系统JFFS2文件系统精通NFS文件系统精通ROMFS文件系统精通EXT2文件系统熟悉YAFF文件系统了解设备驱动程序液晶LCD设备驱动精通USB设备驱动精通网卡设备驱动精通嵌入式图形系统MiniGUI精通QT/Embedded熟悉MicroWIN了解嵌入式数据库系统SQLLite精通嵌入式应用程序开发网络通讯应用开发精通数据库存储应用开发熟悉多媒体应用开发熟悉图形用户界面开发精通Shell编程技巧熟悉【说明】精通――表明对于所学内容和工具的原理进行过深入分析,了解相关内容实现的具体技术细节,并掌握了相关工具的高级使用技巧。熟悉――表明对于所学内容和工具能够融会贯通,掌握相关内容的基本概念,并能够熟练使用相关工具的常用技巧。了解――表明对于所学内容和工具一般了解,能够区别相关内容在概念上的异同,并能够初步使用相关工具。

Ⅲ bootstrap和source的区别

bootloader和bootstrap的区别
在 《embedded linux primer 》上看到的,其实还有一些分歧和不精确的地方,
比如bootstrap 和bootstrap loader似乎在PC上还有区别,不过还是不影响理解了
http://www.devbone.com/leadbbs/MINI/Default.asp?100-2246-0-0-0-0-0-a-.htm
又如RedBoot(RedHat Embedded Debug and Bootstrap),本质是一个bootloader但名字又有bootstrap,让人郁闷
http://sourceware.org/redboot/
这里仅限于嵌入式+ARM+Linux环境
bootloader 翻译为 (第一阶段)引导装入程序
bootstrap loader 翻译为 第二阶段引导装入程序
bootloader不用多解释都能理解--上电后执行的第一个程序,它绝对不会依赖内核。比如uboot、vivi
bootstrap,第二阶段引导装入程序,属于内核代码(没有被编译进vmlinux,但是可执行的镜像如zImage中含有bootstrap ),充当bootloader和内核镜像之间的纽带。
bootstrap通常会校验内核镜像、解压缩内核镜像、重新部署内核镜像到内存、为内核执行提供合适的上下文(无非是关中断、开指令cache和数据cache、设置c语言运行环境)
执行流程
上电-->bootloader -->bootstrap(head.o)-->内核vmlinux(head.o)-->内核start_kernel(main.o)
以上两个head.o并不相同
bootstrap用的是/arch/arm/boot/compressed/head.S
内核vmlinux用的是/arch/arm/kernel/head.S
虽然都是head.o,但是不在一个时代了,自此区分开了bootstrap和内核vmlinux
等于你看到Uncompressing Linux... done, booting the kernel. 还属于bootstrap
等到打印出第二行内核版本信息的时候,就已经是真正的内核main.o的时代了
一个严格意义上的内核,make的一个最重要的生成文件 vmlinux
去掉了符号、标记和注释后生成了image
gzip压缩后变成piggy.gz
接下来,一个名为piggy.s的文件被汇编成piggy.o
非常有意思的是它仅有7行代码,其实就只有把piggy.gz 包含进来的作用
.section .piggydata,#alloc
.globl input_data
input_data:
.incbin "arch/arm/boot/compressed/piggy.gz"
.globl input_data_end
input_data_end:
接着piggy.o同misc.o、head.o等属于bootstrap的代码一起链接成为zImage等可以被引导的合成镜像。
其中misc.o负责解压缩、head.o head_xx.o 负责进行内核上下文的初始化

Ⅳ 如何移植redboot支持nand flash

Redboot被设计用于嵌入式调试和启动环境,它是一个基于eCos的应用程序,使用eCos的硬件抽象层(HAL)作为它的基础。它一个基本的功能是作为bootloader,但可用于任何嵌入式系统或任何嵌入式实时操作系统中。也可用于产品开发周期中的调试支持或在发布的产品中提供flash或网络启动。特性有:

启动脚本支持;

管理和控制的命令行支持;

通过串口或以太网口的访问;

GDB支持;

flash映像系统支持;

X/Y调制解调器的支持;

支持使用BOOTP或静态IP地址配置的网络启动;


移植redboot到stm32开发板

1.,搭建好ecos开发环境

2,打开ecos图形配置工具configtool,如下图所示。

下图中,左边窗口为ecos的配置项窗口,右边窗口从上到下分别为:冲突提示窗口、配置项属性窗口、配置项说明窗口。

Ⅳ 如何制作和使用Jffs2文件系统

嵌入应用:如何制作和使用Jffs2文件系统 (zhuan)本文主要介绍如何在AT91SAM9261EK板子上制作和使用jffs2文件系统,使用的是linux-2.6.21内核。

首先配置MTD

$ make menuconfig
进入 Memory Technology Devices (MTD) --->
<*> Memory Technology Device (MTD) support
[*] Debugging
[*] MTD partitioning support
[*] Command line partition table parsing
[*] Direct char device access to MTD devices
[*] Caching block device access to MTD devices
RAM/ROM/Flash chip drivers ----->
<*> Detect non-CFI AMD/JEDEC-compatible flash chips
<*> Support for AMD/Fujitsu flash chips
Mapping drivers for chip access --->
[*] Support non-linear mappings of flash chips
Self-contained MTD device drivers --->
[*] Support for AT45... DataFlash
NAND Flash Device Drivers ---->
[*] NAND Device Support
[*] Support for NAND Flash /SmartMedia on AT91
File systems ---->
<*> Second extended fs support
[*] Inotify file change notification support
[*] Inotify support for user space
<*> Filesystem in Userspace support
Miscellaneous filesystems
<*> Journalling Flash File System v2 (JFFS2) support
[*] JFFS2 write-buffering support
<*> Compressed ROM file system support (cramfs)

以上配置中没有列出的,都没选;其配置仅做参考,可根据自己的需要自行配置。

$ make all

其次制作mtd-util工具

从网上下载zlib-1.2.3.tar.gz解压缩$ cd zlib-1.2.3

$ ./configure –prefix=/usr/local/arm/3.4.1/arm-linux --shared

修改Makefile如下:

CC=arm-linux-gcc

LDSHARED=arm-linux-ld -shared

$ make all

$ make install

注意:这里是安装在/usr/local/arm/3.4.1/arm-linux目录下

由于交叉编译mtd工具时需要zlib.h文件,所以在编译之前先安装zlib库文件。

从网上下载mtd-snapshot-20050519.tar.bz2 解压缩 $ cd mtd/util

修改该目录下的Makefile:

CROSS=arm-linux-

$ make all

然后将该目录下生成的 flash_erase,flash_eraseall, mkfs.jffs2工具放在ramdisk 文件系统中(我这里放在/bin目录下),另外在ramdisk文件系统的dev目录下要保证有mtd0~mtd9,mtdblock0~mtdblock9这些设备,如果没有可参考 ramdisk文件系统的制作,也可从pc机相同目录下拷贝,要加上文件属性。

另外,需要将/arm-linux/lib目录下的libz.so, libz.so.1, libz.so.1.2.3文件拷贝到ramdisk文件系统的/lib目录下,否则mkfs.jffs2工具不能使用。

最后将新生成的uImage和ramdisk文件下载到板子上,起动系统,使用命令 cat /proc/mtd可以看到

dev: size erasesize name

mtd0: 00040000 00020000 "Partition 1"

mtd1: 0ffc0000 00020000 "Partition 2"

mtd2: 00420000 00000210 "spi0.0-AT45DB321x"

这里mtd0,mtd1是nandflash上的分区; mtd2是dataflsh上的分区,该分区上放有u-boot,uImage.img,ramdisk.img,所以我们这里可以使用空的nandflash上的两个分区。使用之前要先用工具flash_erase或者flash_eraseall擦除nandflash,具体使用的步骤如下:

# flash_erase /dev/mtd1

制作jffs2映像

# cd /var/tmp

# mkdir jffs2 (jffs2下的目录可以任意建)

# mkfs.jffs2 –d jffs2/ -o jffs2.img

# cp /var/tmp/jffs2/jffs2.img /dev/mtdblock1

最后# mount -t jffs2 /dev/mtdblock1 /mnt/mtd即可,使用结束可使用$ umount /mnt/mtd卸载.

如果只是当作普通的jffs2 来使用dataflash或者nandflash,可不必制作 jffs2映像,只需要最后一步,# mount -t jffs2 /dev/mtdblock1 /mnt/mtd即可。

AT91sam9263EK使用JFFS2根文件系统

在AT91sam9263EK成功配置了NFS根文件系统后,后来又想把JFFS2也移植到AT91sam9263EK上吧,说干就干。

1. 呵呵,其实很简单我使用的linux-2.6.20内核里已经有jffs2 文件系统支持,选上jffs2即可

File systems --->

Miscellaneous filesystems --->

<*> Journalling Flash File System v2 (JFFS2) support

(0) JFFS2 debugging verbosity (0 = quiet, 2 = noisy)

[*] JFFS2 write-buffering support

[*] JFFS2 summary support (EXPERIMENTAL)

[*] JFFS2 XATTR support (EXPERIMENTAL)

[*] JFFS2 POSIX Access Control Lists

[*] JFFS2 Security Labels

[*] Advanced compression options for JFFS2

[*] JFFS2 ZLIB compression support

[*] JFFS2 RTIME compression support

[ ] JFFS2 RUBIN compression support

JFFS2 default compression mode (priority)

选上MTD支持

Device Drivers --->

Memory Technology Devices (MTD) --->

<*> Memory Technology Device (MTD) support

[ ] Debugging

<*> MTD concatenating support

[*] MTD partitioning support

< > RedBoot partition table parsing

[*] Command line partition table parsing

<*> ARM Firmware Suite partition parsing

--- User Moles And Translation Layers

<*> Direct char device access to MTD devices

<*> Caching block device access to MTD devices

<*> FTL (Flash Translation Layer) support

<*> NFTL (NAND Flash Translation Layer) support

[ ] Write support for NFTL

2. 从ttp://www.linux-mtd.infradead.org/上下载

mtd-utils-1.0.0.tar.gz 到宿主机。

解压

tar xvzf mtd-utils-1.0.0.tar.gz

进入mtd-utils-1.0.0目录修改Makefile进行编译。

编译出mkfs.jffs2,nandwrite等工具

3. 创建jffs2根文件系统:

首先要有一个其他类型的根文件系统,制作和获取方式可以参见<< AT91sam9263EK使用NFS根文件系统>>

比如可以:

mount -t cramfs rootfs_lnxdemo.cramfs tmp/ -o loop

rootfs_lnxdemo.cramfs由atmel提供当然你可以自己制作,这里直接使用atmel的省去了制作的麻烦。

tar czvf target.tar.gz tmp/

生成jffs2根文件系统镜像:

mkfs.jffs2 –l –s 0x400 –e 0x20000 –d tmp/ -o target.jffs2

4. 烧写jffs2根文件系统镜像到nand flash。

烧写方法应该有多种常用的有2种(呵呵自己认为的):

a.通过nand编程器烧写镜像文件到nand flash芯片然后再焊接到pcb.

b.挂载nfs文件系统,使用nandwrite工具写镜像文件

到mtd设备。

第一种适合生产时使用,而我们测试时候比较适合使用第二种方式。

挂载nfs文件系统:

nandwrite –o /dev/mtd1 target.jffs2

或者是在nfs 根文件系统下:

mount –t jffs2 /dev/mtdblock1 /mnt

cd /mnt

tar xvzf ../target.tar.gz

umount /mnt

5. 配置内核启动参数如下:

setenv bootargs mem=64M console=ttyS0 115200 root=/dev/mtdblock1 rootfstype=jffs2 rw

6. 重新启动,呵呵内核使用jffs2文件系统自动挂载根文件系统到mtdblock1设备上。

ls 测试一下

vi test

hello this is for test jffs2 filesystem.

保存退出。

Sync

重新启动

vi test

内容依旧。

Ok jffs2根文件系统引导成功。
Linux联盟收集整理 ,转贴请标明原始链接

Ⅵ 嵌入式系统启动代码移植分析

搭建开发环境很简单:我用Linux,先在windows下装一个虚拟机VMware,然后安装Red Hat Linux9.0(到网上去下载安装镜像文件)。然后装上交叉编译器,装上嵌入式Linux源码
启动代码很多的别说两个5五个都可以:U-BOOT vivi Blob ARMboot Redboot(推荐用前两种,比较常用)
启动代码的组成与功能嘛,直接网上搜索,多的是。
移植内核和文件系统(Linux),非常简单,把Linux平台搭建好了,直接编译就行。

Ⅶ bootloader和bootstrap的区别

bootloader

bootstrap
的区别

《embedded
linux
primer
》上看到的,其实还有一些分歧和不精确的地方,
比如bootstrap
和bootstrap
loader似乎在PC上还有区别,不过还是不影响理解了
http://www.devbone.com/leadbbs/MINI/Default.asp?100-2246-0-0-0-0-0-a-.htm
又如RedBoot(RedHat
Embedded
Debug
and
Bootstrap),本质是一个bootloader但名字又有bootstrap,让人郁闷
http://sourceware.org/redboot/
这里仅限于嵌入式+ARM+Linux环境
bootloader
翻译为
(第一阶段)引导装入程序
bootstrap
loader
翻译为
第二阶段引导装入程序
bootloader不用多解释都能理解--上电后执行的第一个程序,它绝对不会依赖内核。比如uboot、vivi
bootstrap,第二阶段引导装入程序,属于内核代码(没有被编译进vmlinux,但是可执行的镜像如zImage中含有bootstrap
),充当bootloader和内核镜像之间的纽带。
bootstrap通常会校验内核镜像、
解压缩
内核镜像、重新部署内核镜像到内存、为内核执行提供合适的上下文(无非是关中断、开指令cache和数据cache、设置c语言运行环境)
执行流程
上电-->bootloader
-->bootstrap(head.o)-->内核vmlinux(head.o)-->内核start_kernel(main.o)
以上两个head.o并不相同
bootstrap用的是/arch/arm/boot/compressed/head.S
内核vmlinux用的是/arch/arm/kernel/head.S
虽然都是head.o,但是不在一个时代了,自此区分开了bootstrap和内核vmlinux
等于你看到Uncompressing
Linux...
done,
booting
the
kernel.
还属于bootstrap
等到打印出第二行
内核版本
信息的时候,就已经是真正的内核main.o的时代了
一个严格意义上的内核,make的一个最重要的生成文件
vmlinux
去掉了符号、标记和注释后生成了image
gzip压缩后变成piggy.gz
接下来,一个名为piggy.s的文件被汇编成piggy.o
非常有意思的是它仅有7行代码,其实就只有把piggy.gz
包含进来的作用
.section
.piggydata,#alloc
.globl
input_data
input_data:
.incbin
"arch/arm/boot/compressed/piggy.gz"
.globl
input_data_end
input_data_end:
接着piggy.o同misc.o、head.o等属于bootstrap的代码一起链接成为zImage等可以被引导的合成镜像。
其中misc.o负责解压缩、head.o
head_xx.o
负责进行内核上下文的初始化

Ⅷ 1根据本次开发实验,简述嵌入式系统开发流程2什么是超级终端

看你需不需要嵌入式操作系统的支持了,如果需要譬如Linux系统,那你就现得装一个Linux系统,在虚拟机里面,或者机器上,然后装交叉编译环境。开发流程大致是这样的:首先需要你的开发板和上位机通信才能进行后面的工作,否则什么都做不了,一般开发板都给你留了网口、COM口、和并口Jtag,大部分时间你是用com口来通信,这样在上位机可以用超级终端(Windows下)或者Minicom(Linux下)来看操作系统的信息。硬件搭建好以后,需要做下面的工作:1、Bootloader的移植(譬如Uboot、ViVi,或者Redboot等等,有很多啦)2、内核移植(这个网上资料应该很多的)3、文件系统移植4、Linux下的驱动设计和程序设计大致就这样,再细的话可以在网上搜索,有很多资料。如果不用操作系统的话那就就简单了,只要装一个ADS(开发软件)就可以了,在里面编好程序(可以用C语言或者汇编语言),之后用jtag下载到板子里就行了。你的是实时时钟设计,这就够了,实际也用不上操作系统就能实现。用C语言做还是很简单的~

Ⅸ 关于bootloader的一些问题。高手确定的回答。

简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。比如在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。
在专用的嵌入式板子运行GNU/Linux系统已经变得越来越流行。一个嵌入式Linux系统从软件的角度看通常可以分为四个层次: 1、 引导加载程序。包括固化在固件(firmware)中的boot代码(可选),和BootLoader两大部分。 2、 Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。 3、 文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用ramdisk来作为rootfs。 4、 用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式GUI有:MicroWindows和MiniGUI等。 引导加载程序是系统加电后运行的第一段软件代码。PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的OS BootLoader(比如,LILO和GRUB等)一起组成。BIOS在完成硬件检测和资源分配后,将硬盘MBR中的BootLoader读到系统的RAM中,然后将控制权交给OS BootLoader。BootLoader的主要运行任务就是将内核映象从硬盘上读到 RAM 中,然后跳转到内核的入口点去运行,也即开始启动操作系统。 通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。尽管如此,我们仍然可以对BootLoader归纳出一些通用的概念来,以指导用户特定的BootLoader设计与实现。
编辑本段常见bootloader
Redboot
Redboot是Redhat公司随eCos发布的一个BOOT方案,是一个开源项目。 当前Redboot的最新版本是Redboot-2.0.1,Redhat公司将会继续支持该项目。 Redboot支持的处理器构架有ARM,MIPS,MN10300,PowerPC, Renesas SHx,v850,x86等,是一个完善的嵌入式系统Boot Loader。 Redboot是在ECOS的基础上剥离出来的,继承了ECOS的简洁、轻巧、可灵活配置、稳定可靠等品质优点。它可以使用X-modem或Y-modem协议经由串口下载,也可以经由以太网口通过BOOTP/DHCP服务获得IP参数,使用TFTP方式下载程序映像文件,常用于调试支持和系统初始化(Flash下载更新和网络启动)。Redboot可以通过串口和以太网口与GDB进行通信,调试应用程序,甚至能中断被GDB运行的应用程序。Redboot为管理FLASH映像,映像下载,Redboot配置以及其他如串口、以太网口提供了一个交互式命令行接口,自动启动后,REDBOOT用来从TFTP服务器或者从Flash下载映像文件加载系统的引导脚本文件保存在Flash上。当前支持单板机的移植版特性有: - 支持ECOS,Linux操作系统引导 - 在线读写Flash - 支持串行口kermit,S-record下载代码 - 监控(minitor)命令集:读写I/O,内存,寄存器、 内存、外设测试功能等 Redboot是标准的嵌入式调试和引导解决方案,支持几乎所有的处理器构架以及大量的外围硬件接口,并且还在不断地完善过程中。
ARMboot
ARMboot是一个ARM平台的开源固件项目,它特别基于PPCBoot,一个为PowerPC平台上的系统提供类似功能的姊妹项目。鉴于对PPCBoot的严重依赖性,已经与PPCBoot项目合并,新的项目为U-Boot。 ARMboot发布的最后版本为ARMboot-1.1.0,2002年ARMboot终止了维护。 ARMboot支持的处理器构架有StrongARM ,ARM720T ,PXA250 等,是为基于ARM或者StrongARM CPU的嵌入式系统所设计的。 ARMboot的目标是成为通用的、容易使用和移植的引导程序,非常轻便地运用于新的平台上。ARMboot是GPL下的ARM固件项目中唯一支持Flash闪存,BOOTP、DHCP、TFTP网络下载,PCMCLA寻线机等多种类型来引导系统的。特性为: -支持多种类型的FLASH -允许映像文件经由BOOTP、DHCP、TFTP从网络传输; -支持串行口下载S-record或者binary文件 -允许内存的显示及修改 -支持jffs2文件系统等 Armboot对S3C44B0板的移植相对简单,在经过删减完整代码中的一部分后,仅仅需要完成初始化、串口收发数据、启动计数器和FLASH操作等步骤,就可以下载引导uClinux内核完成板上系统的加载。总得来说,ARMboot介于大、小型Boot Loader之间,相对轻便,基本功能完备,缺点是缺乏后续支持。
U-Boot
U-Boot是由开源项目PPCBoot发展起来的,ARMboot并入了PPCBoot,和其他一些arch的Loader合称U-Boot。2002年12月17日第一个版本U-Boot-0.2.0发布,同时PPCBoot和ARMboot停止维护。 U-Boot自发布以后已更新6次,最新版本为U-Boot-1.1.1,U-Boot的支持是持续性的。 U-Boot支持的处理器构架包括PowerPC (MPC5xx,MPC8xx,MPC82xx,MPC7xx,MPC74xx,4xx), ARM (ARM7,ARM9,StrongARM,Xscale),MIPS (4Kc,5Kc),x86等等, U-Boot(Universal Bootloader)从名字就可以看出,它是在GPL下资源代码最完整的一个通用Boot Loader。 U-Boot提供两种操作模式:启动加载(Boot loading)模式和下载(Downloading)模式,并具有大型Boot Loader的全部功能。主要特性为: -SCC/FEC以太网支持 -BOOTP/TFTP引导 -IP,MAC预置功能 -在线读写FLASH,DOC, IDE,IIC,EEROM,RTC -支持串行口kermit,S-record下载代码 -识别二进制、ELF32、pImage格式的Image,对Linux引导有特别的支持 -监控(minitor)命令集:读写I/O,内存,寄存器、内存、外设测试功能等 -脚本语言支持(类似BASH脚本) -支持WatchDog,LCD logo,状态指示功能等 U-Boot的功能是如此之强大,涵盖了绝大部分处理器构架,提供大量外设驱动,支持多个文件系统,附带调试、脚本、引导等工具,特别支持Linux,为板级移植做了大量的工作。U-Boot1.1.1版本特别包含了对SA1100和44B0芯片的移植,所以44B0移植主要是针对Board 的移植,包括FLASH、内存配置以及串口波特率等等。U-Boot的完整功能性和后续不断的支持,使系统的升级维护变得十分方便。
Blob
Blob(Boot Loader Object)是由Jan-Derk Bakker and Erik Mouw发布的,是专门为StrongARM 构架下的LART设计的Boot Loader。 Blob的最后版本是blob-2.0.5。 Blob支持SA1100的LART主板,但用户也可以自行修改移植。 Blob也提供两种工作模式,在启动时处于正常的启动加载模式,但是它会延时 10 秒等待终端用户按下任意键而将 Blob 切换到下载模式。如果在 10 秒内没有用户按键,则 Blob 继续启动 Linux 内核。其基本功能为: 初始化硬件(CPU速度,存储器,中断,RS232串口) -引导Linux内核并提供ramdisk - 给LART下载一个内核或者ramdisk -给FLASH片更新内核或者ramdisk -测定存储配置并通知内核 -给内核提供一个命令行 Blob功能比较齐全,代码较少,比较适合做修改移植,用来引导Liunx,目前大部分S3C44B0板都用Blob修改移植后来加载uClinux。
Bios-lt
Bios-lt是专门支持三星(Samsung)公司ARM构架处理器S3C4510B的Loader,可以设置CPU/ROM/SDRAM/EXTIO,管理并烧写FLASH,装载引导uClinux内核。这是国内工程师申请GNU通用公共许可发布的。 Bios-lt的最新版本是Bios-lt-0.74,另外还提供了S3C4510B的一些外围驱动。
Bootldr
Bootldr是康柏(Compaq)公司发布的,类似于compaq iPAQ Pocket PC,支持SA1100芯片。它被推荐用来引导Llinux,支持串口Y-modem协议以及jffs文件系统。 Bootldr的最后版本为Bootldr-2.19。

Ⅹ stm32移植ecos #1,为什么要把ecos移植到stm32平台上 reille ...

作为eCos推广计划一部分,会将eCos移植到当前非常流行的stm32处理器上,在此基础上,展开一些应用开发设计,并提供工程模板。选择stm32作为eCos推广突破口,有以下几个因素:在对eCos有一点了解或有所耳闻的大多数工程师眼中,eCos可能被定位于像ucosII一样级别的嵌入式OS,换句话说,eCos的应用场合应该是类似ARM7、Cortex-M处理器之类的CPU中; 当前,STM32相比其它家的Cortex-M处理器更加流行,被广泛应用到许多低端嵌入式产品中,而且最重要的是,学者众多,开发板资源非常丰富; 目前市场上,stm32开发板一大堆,很容易利用当前资源展开eCos的学习; 像ARM7和Cortex-M处理器之类的CPU中,使用的OS大多数是ucosII,而这个OS是收费的,不能商用,相反,eCos是开源免费使用的,如果在这众多嵌入式应用中,可使用eCos在多数产品应用中替换掉ucosii,那么推广效果将更加理想; 对于ARM9以上的高端处理器,工程师更宁愿使用linux、VxWorks、Windows CE、uclinux等OS,而不愿意使用免费便资源匮乏的eCos; 这里有一个关键因素是,eCos必须展现它的应用价值和它的魅力,不然凭什么人家对这个OS产生兴趣并在产品中使用它。0您可能也喜欢:stm32移植ecos #3,我的stm32开发板配置stm32移植ecos #2,选购stm32开发板stm32移植ecos #7,移植ecos并成功运行helloworld程序,配置编译生成静态链接库文件stm32移植ecos #8,移植ecos并成功运行helloworld程序,编译链接生成helloworld程序stm32移植ecos #11,使用自己的模板(Template)stm32移植ecos #4,移植redboot(ROM启动方式)上篇stm32移植ecos #9,移植ecos并成功运行helloworld程序,使用redboot引导运行内存中的helloworld程序stm32移植ecos #6,redboot的疑问和问题,redboot是必需的吗?

阅读全文

与redboot编译相关的资料

热点内容
java字符处理函数 浏览:274
指纹用于应用加密什么意思 浏览:998
怎么取消苹果手机的appid密码 浏览:997
门禁系统录制卡怎么加密 浏览:753
ssm看源码哪本书好 浏览:933
linux查看网卡的命令 浏览:497
basic语言算法 浏览:13
怎么快捷删除无用文件夹 浏览:475
你家离学校源码用英语回答 浏览:504
电脑如何用服务器地址 浏览:652
php转化为二进制 浏览:738
程序员到国企感受 浏览:863
js二分搜索算法 浏览:658
文件夹的定义与原意 浏览:202
phpredis任务队列 浏览:463
文件夹的颜色代表什么 浏览:895
单片机模拟通信 浏览:931
pandas在哪里编译 浏览:918
安卓机怎么调清晰度 浏览:346
开始菜单文件夹英语 浏览:887