vivi是韩国mizi 公司开发的bootloader, 适用于ARM9处理器。Vivi有两种工作模式:启动加载模式和下载模式。启动加载模式可以在一段时间后(这个时间可更改)自行启动linux内核,这时vivi的默认模式。在下载模式下,vivi为用户提供一个命令行接口,通过接口可以使用vivi提供的一些命令,如下:
命令
功能
Load
把二进制文件载入Flash或RAM
Part
操作MTD分区信息。显示、增加、删除、复位、保存MTD分区
Param
设置参数
Boot
启动系统
Flash
管理Flash,如删除Flash的数据
vivi代码分析
vivi的代码包括arch,init,lib,drivers和include等几个目录,共200多条文件。
Vivi主要包括下面几个目录:
arch:此目录包括了所有vivi支持的目标板的子目录,例如s3c2410目录。
drivers:其中包括了引导内核需要的设备的驱动程序(MTD和串口)。MTD目录下分map、nand和nor三个目录。
init:这个目录只有main.c和version.c两个文件。和普通的C程序一样,vivi将从main函数开始执行。
lib:一些平台公共的接口代码,比如time.c里的udelay()和mdelay()。
include:头文件的公共目录,其中的s3c2410.h定义了这块处理器的一些寄存器。Platform/smdk2410.h定义了与开发板相关的资源配置参数,我们往往只需要修改这个文件就可以配置目标板的参数,如波特率、引导参数、物理内存映射等。
关键字:ARM9 bootloader vivi
引用地址:
ARM9的bootloader---vivi
推荐阅读最新更新时间:2024-03-16 15:00
华为:暂时没有计划解除Mate 30系列的bootloader限制
在德国慕尼黑Mate 30系列新品发布会结束之后,华为首席执行官余承东接受了多家媒体的采访。期间他回答了一些与新机相关的问题,其中就包括考虑解除对 Mate 30 Pro 机型的 bootloader 限制。不过随后华为发言人对余的言论进行澄清,表示华为目前“并没有计划”解除Mate 30系列上的bootloader 限制。 目前尚不清楚华为在未来是否会考虑开放bootloader,也不清楚这项决定对于那些想要Sideload 谷歌GMS服务的用户带来多大的影响。在没有GMS服务也没有谷歌应用程序,Mate 30系列在西方国家的销售将会面临严峻的挑战。 对于喜欢 Mate 30 Pro 硬件设计,但又苦于缺少谷歌服务的用户来说
[手机便携]
基于ARM9和Linux的机器人控制系统设计
引 言 现有智能机器人用直流电机作为驱动轮时一般都是用单片机或者高速的DSP等进行控制,而且同一机器人往往需用多个CPU来实现各自的功能,但随着对机器人的智能化要求越来越高,需要一种新的控制器(使用一个处理器)来满足机器人的各种行为要求,例如视频采集、无线通信。本文介绍的利用ARM实现的智能机器人平台,为智能机器人的开发提供了一个新方法。平台采用的ARM9是基于三星公司的S3C2410处理器,主频高达200 MHz,支持蓝牙、触摸屏以及USBHOST接口,可以传输高速图像。嵌入式Linux系统是一个多用户操作系统,它允许多个用户同时访问系统而不会造成用户之间的相互干扰。另外,Linux系统还支持真正的多用户编程,一个用户可以创
[单片机]
linux 2.6.32 在arm9(s3c2440)平台的移植2 -- Kconfig和Makefile(2)linux
Linux内核源码树的每个目录下都有一个Kconfig和Makefile, 分布到各目录的Kconfig构成了一个分布式的内核配置数据库, 每个Kconfig分别描述了所属目录源文档相关的内核配置菜单. 在linux目录执行内核配置make menuconfig时, 从Kconfig中读出菜单, 用户选择后保存到linux-2.6/.config的内核配置文档中. 在内核编译时, 主Makefile调用这个.config, Kconfig就是对应着内核的每级配置菜单. 添加新的驱动时需要修改有两种( 1如果添加的只是文件, 则只需修改当前层Kconfig和Makefile文件; 2如果添加的是目录, 则需修改当前层和新添目
[单片机]
ARM9的系统时钟和串口(非流控 + 非FIFO + 查询方式)
实验的目的: 设置系统时钟,并在串口上输入一个字符,单板接收后将它的ASCII值加1后,从串口输出。 实验的源程序: /************************************************************************* s3c24xx.h *************************************************************************/ /* WOTCH DOG register */ #define WTCON (*(volatile unsigned long *)0x53000000) /* SDRAM regi
[单片机]
[nrf52][SDK17] 如何使用官方BootLoader
所需文件已经编译完毕,直接放入指定目录。 **nRF5_SDK_17.0.2_d674ddeexternalmicro-ecc micro-ecc.rar BootLoader工程位置 xxnRF5_SDK_17.0.2_d674ddeexamplesdfusecure_bootloader 使用keil编译完成后,直接烧录,是无法运行的,因为 引导文件没有烧录。 xxnRF5_SDK_17.0.2_d674ddecomponentssoftdevicembrhexmbr_nrf52_2.4.1_mbr.hex 将文件复制到工程根目录 写一个脚本,命名 @echo off @echo eraseal
[单片机]
ARM-bootloader-C语言环境设计
一、栈初始化 1、概念解析 1.1栈 栈是一种具有后进先出性质的数据组织方式,也就是说后存放的先取出,先存放的后取出。栈底是第一个进栈的数据所处的位置,栈顶是最后进栈数据所处的位置。 1.2满栈和空栈 根据SP指针指向的位置,栈可以分为满栈和空栈。 1、满栈:当堆栈指针SP总是指向最后压入堆栈的数据 2、空栈:当堆栈指针SP总是指向下一个将要放入数据的空位置 ARM采用的是满栈 1.3、升/降栈 1、升栈:随着数据的入栈,SP指针从低地址- 高地址移动 2、降栈:随着数据的入栈,SP指针从高地址- 低地址移动 ARM采用的是降栈。有时候我们会说ARM采用的是满降栈。 1.4、栈帧
[单片机]
自制bootloader之程序的编译和链接
文本程序有4个:boot.s head.s main.c(led.c) image.s boot.s:这个bootloader中真正属于boot的程序,完成板子硬件初始化并将内核程序(万能的LED流水灯 )搬至SDRAM。 head.s:内核程序的前部,包括内核异常向量表和内核程序入口。 main.c:内核主程序,只是一个简单的LED流水灯~~~ inamge.s:整个bootloader的映像文件。包含boot.bin和kernel.bin,主要是将两个bin文件重定向,确保两个文件在正确的地址上。 Makefile文件如下:挺简单的~~先贴出来: CC = arm-elf-gcc AS = arm-elf-a
[单片机]
【ARM9嵌入式系统硬件设计指南】产品电源设计过程
6.5产品电源设计过程 6.5.1系统级电源框图设计 系统级的电源设计,主要从整个系统的功能、产品的应用场合、开发周期、性价比等整体出发,综合评估系统前级、板内功能模块、对外供电接口、通讯接口、数据采集接口等对电源的需求及相应需达到的防护等级。在实际的工程应用中,市场机会稍纵即逝,往往留给产品的开发周期都很短,从产品的可靠性出发,系统级的电源设计,通常都尽量采用成熟的模块化电源来设计,降低风险,使产品尽早面世,占领市场。 以如图6.10所示的工控系统应用为例进行说明,系统较为复杂,包括了多种信号的数据采集、CAN、RS-485等现场总线、板内要求双电源供电的运放、电机驱动等多种功能。每个功能模块,对电源的要求都有
[单片机]