安卓手机h3c bootrom密码是什么意思

Android 系统启动过程
Android系统启动过程由以下几个大步骤组成:
BootRom, Bootloader, Linux Kernel, android启动
BootRom没有源代码
Bootloader代码主要在/bootable下,包括对normal startup,
及recovery mode, fastboot mode的处理
Linux主要是linux kernel启动
Android从porcess init (process 1)开始,带动其他process/service启动
下面主要讲Bootloader
及linux调用过程
1.Bootloader调用过程
kernel/arch/arm/crt0.S
call kmain() in bootable/bootloader/lk/kernel/main.c
kmain() 依次调用
thread_init_early()
arch_early_init()
platform_early_init()
target_early_init()
bs_set_timestamp()
call_constructors()
heap_init()
thread_init()
dpc_init()
timer_init()
create thread bootstrap2
target_early_init()
bootable/bootloader/lk/target/msm8226/init.c
,会对uart初始化
uart_dm_init(1, 0, BLSP1_UART2_BASE);
bootstrap2()
arch_init()
platform_init()
target_init()
apps_init()
target_init()定义在具体平台下,通常初始化些用到总线,keyboard, display等
apps_init()
bootable/bootloader/lk/app/app.c
,会调用bootable/bootloader/lk/app/aboot/aboot.c
aboot_init()
aboot_init() 首先判断按键是recovery mode还是fastboot mode.
如果是fastboot mode,则调用fastboot_init()
,该函数定义在bootable/bootloader/lk/app/aboot/fastboot.c。
如果是正常启动模式或recovery模式,则调用
emmc_recovery_init())
boot_linux_from_mmc()
boot_linux_from_mmc()定义在recovery/normal mode
bootable/bootloader/lk/app/aboot/aboot.c
首先根据不同模式读出/boot, /recovery分区索引及偏移,接着会调用boot_linux()
进入linux kernel.
2. Kernel启动调用过程
进入linux kernel首先是解压缩zimage,初始化MMU等硬件,进入到start_kernel()
是由kernel/arch/arm/kernel/head-common.S里的__INIT调用过来
start_kernel()定义在 kernel/init/main.c,会调用
boot_cpu_init();
page_address_init();
mm_init_owner(&init_mm, &init_task);
mm_init_cpumask(&init_mm);
setup_command_line(command_line);
setup_nr_cpu_ids();
setup_per_cpu_areas();
smp_prepare_boot_cpu();
/* arch-specific boot-cpu hooks */
setup_log_buf(0);
vfs_caches_init_early();
mm_init();
sched_init();
rest_init();
rest_init()
create two threads,
在第一个线程执行函数kernel_init(),
if (!ramdisk_execute_command)
ramdisk_execute_command = "/init";
接着调用init_post(),
run_init_process(ramdisk_execute_command);
-&kernel_execve
-& do_execve
process init就这样被创建了
Bootloader调试:
串口,T32,
写到文件里,打印到屏幕,设置硬件(GPIO, LED,vibrate)
printk, cat proc/kmsg, dmesg
Init process:
ERROR or change LOG_DEFAULT_LEVEL to 6
没有更多推荐了,大多来自本人的学习总结,希望能给众友们带来解决问题的方法
从开机到安卓启动过程
  原文地址:
,本文章是在基于该文章的翻译,翻译的不好,请笑纳 -):
1. Power on and boot ROM code execution
开机并执行 boot ROM 代码
At power on the CPU will be in a state where no initializations have been done. Internal clocks are not set up and the only memory available is the internal RAM.
When power supplies are stable the execution will start with the Boot ROM code. This is a small piece of code that is hardwired in the CPU ASIC.
才开机时,CPU 处于未初始化状态,还没有设定内部时钟,仅仅只有内部 RAM 可用。当电源稳定后会开始执行 BOOT ROM 代码,这是一小块代码被硬编码在 CPU ASIC 中。
A. The Boot ROM code will detect the boot media using a system register that maps to some physical balls on the asic.
This is to determine where to find the first stage of the boot loader.
Boot ROM 代码会引导 boot 媒介使用系统寄存器映射到 ASIC 中一些物理区域,这是为了确定哪里能找到 boot loader 的第一阶段
B. Once the boot media sequence is established the boot ROM will try to load the first stage boot loader to internal RAM.
Once the boot loader is in place the boot ROM code will perform a jump and execution continues in the boot loader.
一旦 boot 媒介顺序确定,boot ROM 会试着装载 boot loader 的第一阶段到内部 RAM 中,一旦 boot loader 就位,boot ROM 代码会跳到并执行 boot loader
2. The boot loader
The boot loader is a special program separate from the Linux kernel that is used to set up initial memories and load the kernel to RAM.
On desktop systems the boot loaders are programs like GRUB and in embedded Linux is often the boot loader of choice.
Device manufacturers often use their own proprietary boot loaders.
boot loader 是一个特殊的独立于 Linux 内核的程序,它用来初始化内存和装载内核到 RAM 中,桌面系统的 boot loader 程序有 GRUB,嵌入式系统常用 uBoot,
设备制造商常常使用自己专有的 boot loader 程序。
A. The first boot loader stage will detect and set up external RAM.
boot loader 第一阶段会检测和设置外部 RAM
B. Once external RAM is available and the system is ready the to run something more significant the first stage will load the main boot loader and place it in external RAM.
一旦外部 RAM 可用,系统会准备装载主 boot loader,把它放到外部 RAM 中
C. The second stage of the boot loader is the first major program that will run. This may contain code to set up file systems, additional memory,
network support and other things.On a mobile phone it may also be responsible for loading code for the modem CPU and setting up low level memory
protections and security options.
boot loader 第二阶段是运行的第一个重要程序,它包含了设置文件系统,内存,网络支持和其他的代码。在一个移动电话上,
也可能是负责加载调制解调器的CPU代码和设定低级别的内存保护和安全选项
D. Once the boot loader is done with any special tasks it will look for a Linux kernel to boot. It will load this from the boot media
(or some other source depending on system configuration) and place it in the RAM.
It will also place some boot parameters in memory for the kernel to read when it starts up.
一旦 boot loader 完成这些特殊任务,开始寻找 linux 内核,它会从 boot 媒介上装载 linux 内核(或者其他地方,这取决于系统配置),把它放到 RAM 中,
它也会在内存中为内核替换一些在内核启动时读取的启动参数
E. Once the boot loader is done it will perform a jump to the Linux kernel, usually some decompression routine, and the kernel assumes system responsibility.
一旦 boot loader 完成会跳到 linux 内核,通常通过解压程序解压内核文件,内核将取得系统权限
3. The Linux kernel
  linux 内核
The Linux kernel starts up in a similar way on Android as on other systems. It will set up everything that is needed for the system to run. Initialize interrupt controllers,
set up memory protections, caches and scheduling.
linux 内核在 android 上跟在其他系统上的启动方式一样,它将设置系统运行需要的一切,初始化中断控制器,设定内存保护,高速缓存和调度
A. Once the memory management units and caches have been initialized the system will be able to use virtual memory and launch user space processes.
  一旦内存管理单元和高速缓存初始化完成,系统将可以使用虚拟内存和启动用户空间进程
B. The kernel will look in the root file system for the init process (found under system/core/init in the Android open source tree) and launch it as the initial user space process.
  内核在根目录寻找初始化程序(代码对应 android source tree: /system/core/init ),启动它作为初始化用户空间进程
4. The init process
  初始化进程
The init process is the "grandmother" of all system processes. Every other process in the system will be launched from this process or one of its descendants.
初始化进程是所有其他系统进程的 “祖母 ”,系统的每一个其他进程将从该进程中或者该进程的子进程中启动
A. The init process in Android will look for a file called init.rc. This is a script that describes the system services, file system and other parameters that need to be set up.
The init.rc script is placed in system/core/rootdir in the Android open source project.
初始化进程会寻找 init.rc 文件,init.rc 脚本文件描述了系统服务,文件系统和其他需要设定的参数,该文件在代码:system/core/rootdir
B. The init process will parse the init script and launch the system service processes.
初始化进程解析 init 脚本,启动系统服务进程
5. Zygote and Dalvik
The Zygote is launched by the init process and will basically just start executing and and initialize the Dalvik VM.
Zygote 被初始化进程启动,开始运行和初始化 dalvik 虚拟机
6. The system server
The system server is the first java component to run in the system. It will start all the Android services such as telephony manager and bluetooth.
Start up of each service is currently written directly into the run method of the system server. The system server source can be found in the file :frameworks/base/services/java/com/android/server/SystemServer.java in the open source project.
系统服务是在系统中运行的第一个 java 组件,它会启动所有的 android 服务,比如:电话服务,蓝牙服务,每个服务的启动被直接写在 SystemServer.java 这个类的 run 方法里面
代码: frameworks/base/services/java/com/android/server/SystemServer.java
7. Boot completed
  启动完成
Once the System Server is up and running and the system boot has completed there is a standard broadcast action called ACTION_BOOT_COMPLETED.
一旦系统服务启动并运行,android 系统启动就完成了,同时发出 ACTION_BOOT_COMPLETED 广播
没有更多推荐了,您需要通过验证再能继续浏览 3秒后开始验证
丨 粤ICP备号-10 丨 新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!
(C) Joyslink Inc. All rights reserved 保留所有权利在电子工程世界为您找到如下关于“BootROM”的新闻
。但是,在实际的应用过程中也发现了一些问题。由于更新过程中发生的一些异常操作(比如突然断电、更新数据传输错误等),会导致产品软件损坏,用户无法维修,必须发回产品生产厂家进行维修,这给产品使用造成了很大的不便。& & 分析这种问题发生的原因,当采用嵌入式Linux、Windows&CE等较为复杂的操作系统时,一般设计一个独立的bootrom程序...
;&&&&&boot&from nand flash
&&& |------|
------。。&&&&&&&&boot&from nor flash
(1) BOOTSEL跳线...
,数据总线亦然,而Flash的A0和DO皆是LSB,连线时要注意引脚次序。另外,由于Flash是4字节同步读取操作,连线时应将CPU的地址线左移2位,即最低位A0和Al不用。&&& 为了便于系统调试,可增加1个512 KB的SST39SF040用于BootROM启动,通过跳线与2个Flash互选CS0片选,这样系统启动时会自动从CSO的设备上读取启动代码...
到其系统功能实现的整个运行过程进行深入介绍,并在此基础上进一步分析在F28x系列DSP上移植实时操作系统一般原理,详细说明μC/OSⅡ的移植。
1& BootROM及其运行
  在F281x、C281x、R281x器件中都有一块4K×16位的BootROM。当引脚MP/nMC的状态反映到XINTCNF2中为0时,BootROM被映射到地址空间0x3FF000...
  TMS320F28x上RTOS移植关键技术研究
  摘要详细分析TT公司TMS320F28x系列DSP的启动过程;说明BootROM中程序的运行过程,介绍C编译器和DSP/BIOS的工作细节;探讨DSP的中断处理及从RAM中执行代码等问题。最后分析如何在TMS320F28x系列DSP上移植实时操作系统。
  关键词数字信号处理器 TMS320F28x BootRoM...
  TMS320F28x上RTOS移植关键技术研究
  摘要详细分析TT公司TMS320F28x系列DSP的启动过程;说明BootROM中程序的运行过程,介绍C编译器和DSP/BIOS的工作细节;探讨DSP的中断处理及从RAM中执行代码等问题。最后分析如何在TMS320F28x系列DSP上移植实时操作系统。
  关键词数字信号处理器 TMS320F28x BootRoM...
  TMS320F28x上RTOS移植关键技术研究
  摘要详细分析TT公司TMS320F28x系列DSP的启动过程;说明BootROM中程序的运行过程,介绍C编译器和DSP/BIOS的工作细节;探讨DSP的中断处理及从RAM中执行代码等问题。最后分析如何在TMS320F28x系列DSP上移植实时操作系统。
  关键词数字信号处理器 TMS320F28x BootRoM...
  TMS320F28x上RTOS移植关键技术研究
  摘要详细分析TT公司TMS320F28x系列DSP的启动过程;说明BootROM中程序的运行过程,介绍C编译器和DSP/BIOS的工作细节;探讨DSP的中断处理及从RAM中执行代码等问题。最后分析如何在TMS320F28x系列DSP上移植实时操作系统。
  关键词数字信号处理器 TMS320F28x BootRoM...
摘要:以VxWorks嵌入式实时操作系统为例,介绍了改进启动代码(Bootrom)功能的四点经验:(1)具备故障保护功能的Bootrom的自我在线更新;(2)增加重启功能;(3)自动运行应用软件;(4)多种应用软件的选择。
关键词:Bootrom 嵌入式实时操作系统 FTP
VxWorks是美国WindRiver System公司于1983年设计开发后个运行...
摘要:在Wind River公司开发的VxWorks嵌入式操作系统平台上,改进交换机产品bootrom软件的实现方式;给出实现方法和改进目的,为BSP开发人员提供一套全新的bootrom实现方案。
关键词:VxWorks bootrom BSP makefile
1 问题的提出
VxWorks是Wind River公司开发的一种嵌入式操作系统,具有强大的功能...
BootROM资料下载
...\00bsp.cdf
...\00html.cdf
...\bootConfig.o
...\bootInit.o
...\bootrom
...\bootrom.bin
...\bootrom.sys
...\bootrom.Z.o
...\bootrom.Z.s
...\bootrom_uncmp.bin
...\config.h...
VxWorks中的内存布局 131
BootRom运行时的内
存布局 132
VxWorks运行时的内
存布局 133
内存分配算法 134
VxWorks中内存操作API
Flash存储器 139
内存管理单元和VxVMI 141
虚拟内存 141
基本MMU的支持 142
....\...........\StartBootROMDemo\8051\kstartbootrom.hex
....\...........\................\....\kstartbootrom.uv2
....\...........\................\....\main.c
....\...........\................\....\reg51rx2.h...
.......\\bluetooth_on_usb.html
.......\\bluetooth_over_uart.html
.......\\bootloaders-bootrom-ldr.html
.......\\bootloaders-bootrom.html
.......\\bootloaders-microm...
BF533 内部BOOTROM代码(整个工程文件)文件列表:
.........\\ADSP-BF533-ROM-V02.asm
.........\\basiccrt.s
.........\\BootRom_2.dpj
.........\\BootRom_2.ldf
.........\\BootRom...
接,希 望对初学的朋友有点帮助。也许在分析中有很多错误,希望大家能够指正,共同进步。 Bootloader 的实现基于三星 4510B,假设开发板上有 2M 的 Flash 作为 Boot rom,SDRAM 的大小是 16M。开发环境是 ADS1.2。一.相关介绍1.Bootloader 的基本任务 Bootloader 一般是被烧录或者下载到 bootrom 的 0x0 地址处,作为上电后执行...
,vxWorks 可以通过从串口,网口,硬盘,flash 等下载 !这里的 bootrom 不是开发环境中的 bootable,在开发环境里 bootable 指的是 vxWorks, downloadable 指 application 4.调试 attach 用来在多任务调试时将调试对象绑定到某个任务 任务级调试(attach taskName) 单个任务的调试不会影响到其他任务的运行,主要用来调用...
(93C56) or BootROM. W89C841Falso supports BootROM/Flash interface to read/write BootROM or Flash memory....
详细说明:Embedded Planet公司的ep8260单板计算机的BSP包(VxWorks),cpu为mpc8260 文件列表:
bootConfig.o
bootInit.c
bootInit.o
bootrom.Z.o
bootrom.Z.s
config.h.bak
configNet.h
amine_MFC5272_BOOTROM开发笔记,amine_MFC5272_BOOTROM开发笔记……...
BootROM相关帖子
1来看一下芯片上电后的代码执行流程,当芯片在接收到一个复位信号后,会到0x3FFFC0去复位向量,该复位向量跳到BootROM 0x3FF75C中去执行bootloader的程序,这里主要有initboot, 和SelectBootMode, 以及一些外设引导的函数。SeleteBootMode根据芯片的硬件或软件设置来判断芯片该去哪里寻找程序入口,直接目的是如何找到main,然后执行应用程序...
这还是当初刚学DSP的时候做的东西(DSP+上位机的软件示波器),拿出来晒晒。定点DSP运算的数据都是定点数,为了更好的支持小数的运算,经常采用Q格式或者S格式来表示小数。在TMS320F2812 DSP的软件编程上,采用了TI公司的智能Q格式(IQmath)。它可以在Q=1至30之间,用32位的定点数方便地表示不同范围的浮点数。而且,TMS320F2812已经将数学表固化在了BOOTROM中...
了用PC-MCU的编程接口(JTAG、串口、双绞线、SPI等)搞定新版本的升级的目的。MCU内部都是首先执行一段独立的Boot代码(这段Boot代码一般是出厂预置,或使用编程器烧录的,通常只有1k或4k,SST通常是占用一块独立的Block,Philips通常是让BootROM地址与其他Flash重叠,以达到隐藏的效果),Boot负责控制擦除程序存储器及给程序存储器编程的代码(或是处理器外部提供的执行代码...
2812的中断向量表
首先2812的中断向量表映射的地址是由4个标志位决定的:VMAP,M0M1MAP,MP/MC,ENPIE。
而系统复位时VMAP=1,ENPIE=0,根绝中断向量表映射配置表可知,此时中断向量表映射在BootROM区域,地址:0x3FFFC0~0x3FFFFF;
(注意此时中断向量表并不在PIEVECT(0x000D00~0x000DFF)处...
情况有所帮助。
以C2000 Piccolo系列的引导模式为例,delfino稍微有点区别,concerto系列的引导则更复杂。但理解了Piccolo的引导原理对我们理解后面两个系列的芯片有非常大的帮助。
1.首先我们根据图1来看一下芯片上电后的代码执行流程,当芯片在接收到一个复位信号后,会到0x3FFFC0去复位向量,该复位向量跳到BootROM 0x3FF75C中去执行boot...
& &IQTABLES2&&: origin = 0x3FEB50, length = 0x00008c
& &FPUTABLES&&: origin = 0x3FEBDC, length = 0x0006A0
& &BOOTROM& & : origin = 0x3FF27C...
有项新工作,需要来完成一款SOC的bootloader,但是对于bootloader 固件部分,不知道怎么写,是否有大神指导下,大概里面需要完成写什么工作,或者有范例可以指导下,感谢!
bootrom开发求助 这个估计需要付费了
看看有没有人了解的
bootrom部分是保密资料,我这边向想了解下这部分大概需要做些什么事情!网上一个都没有说的!!!{:1_101:}...
工作:要么把其中的一个Q1格式的定点数先转换为另一个Q2格式,要么把它们都转换为一个中间值Q3格式的定点数,然后再进行运算。  这些运算虽然并不复杂,但是如果在数学运算比较多的情况下,一个个的进行手工转换还是比较麻烦的,还好在近些年的处理器特别是DSP芯片中,在其BootROM中都内置了强大的数学表来帮助我们完成这些转换工作,我们只要按照一定的格式进行书写,那么编译器就会自动调用相关的库函数来完成...
情况有所帮助。以C2000 Piccolo系列的引导模式为例,delfino稍微有点区别,concerto系列的引导则更复杂。但理解了Piccolo的引导原理对我们理解后面两个系列的芯片有非常大的帮助。1.首先我们根据图1来看一下芯片上电后的代码执行流程,当芯片在接收到一个复位信号后,会到0x3FFFC0去复位向量,该复位向量跳到BootROM 0x3FF75C中去执行bootloader的程序...
向量跳到BootROM 0x3FF75C中去执行bootloader的程序,这里主要有initboot, 和SelectBootMode, 以及一些外设引导的函数。SeleteBootMode根据芯片的硬件或软件设置来判断芯片该去哪里寻找程序入口,直接目的是如何找到main,然后执行应用程序。& && && && &nbsp...
BootROM视频
你可能感兴趣的标签
热门资源推荐}

我要回帖

更多关于 bootrom是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信