X86下vxworks的romStart分析:
2010-03-09 10:46
113 查看
vxworks 压缩型BOOT的romStart分析:
binArrayStart:压缩的二进制image的起始地址
binArrayEnd:压缩的二进制image的结束地址
压缩的二进制image中没有romInit.o和bootInit.o
将ROM_OFFSET(binArrayStart)开始解压RAM_DST_ADRS地址,即RAM_HIGH_ADRS地址,
然后直接跳转到usrInit().
下面这段拷贝,具体含义是:
/*
* copy text to uncached locations to avoid problems with
* copy back caches
* copy the entire data segment because there is no way to ensure that
* binArray is the last thing in the data segment because of GP relative
* addressing
*/
知道可以说一下!呵呵
((FUNCPTR)ROM_OFFSET(copyLongs)) (ROM_TEXT_ADRS, (UINT)romInit,
((UINT)binArrayStart - (UINT)romInit)/ sizeof (long));
((FUNCPTR)ROM_OFFSET(copyLongs))
((UINT *)((UINT)ROM_TEXT_ADRS + ((UINT)BINARRAYEND_ROUNDOFF -
(UINT)romInit)), (UINT *)BINARRAYEND_ROUNDOFF,
((UINT)wrs_kernel_data_end - (UINT)binArrayEnd) / sizeof (long));
binArrayStart:压缩的二进制image的起始地址
binArrayEnd:压缩的二进制image的结束地址
压缩的二进制image中没有romInit.o和bootInit.o
将ROM_OFFSET(binArrayStart)开始解压RAM_DST_ADRS地址,即RAM_HIGH_ADRS地址,
然后直接跳转到usrInit().
下面这段拷贝,具体含义是:
/*
* copy text to uncached locations to avoid problems with
* copy back caches
* copy the entire data segment because there is no way to ensure that
* binArray is the last thing in the data segment because of GP relative
* addressing
*/
知道可以说一下!呵呵
((FUNCPTR)ROM_OFFSET(copyLongs)) (ROM_TEXT_ADRS, (UINT)romInit,
((UINT)binArrayStart - (UINT)romInit)/ sizeof (long));
((FUNCPTR)ROM_OFFSET(copyLongs))
((UINT *)((UINT)ROM_TEXT_ADRS + ((UINT)BINARRAYEND_ROUNDOFF -
(UINT)romInit)), (UINT *)BINARRAYEND_ROUNDOFF,
((UINT)wrs_kernel_data_end - (UINT)binArrayEnd) / sizeof (long));
相关文章推荐
- Vxworks5.5之romStart函数分析
- VxWorks启动代码romStart()函数分析
- VxWorks启动代码romStart()函数分析
- VxWorks启动代码romStart()函数分析
- x86上vxworks启动分析
- VxWorks启动之romStart剖析
- VxWorks上从romInit跳转到romStart时的地址计算
- on-chip ROM boot的原理分析
- runv start container 流程分析
- Glide类似You cannot start a load for a destroyed activity异常简单分析
- Android应用程序内部启动Activity过程(startActivity)的源代码分析
- HDFS之Qurom Journal Manager(QJM)实现机制分析
- 嵌入式Linux启动过程分析4-u-boot-1step-start.S
- Android应用程序内部启动Activity过程(startActivity)的源代码分析
- linux源码分析(三)-start_kernel
- Android ROM开发(二)——ROM架构以及Updater-Script脚本分析,常见的Status错误解决办法
- 项目经验之谈—— x86、ARM架构栈帧汇编分析
- DECLARE_GLOBAL_DATA_PTR、gd_t、bd_t及uboot中 start_armboot 代码分析
- android 性能分析之常用adb命令adb shell am start -W
- Android系统在新进程中启动自定义服务过程(startService)的原理分析、Android应用程序绑定服务(bindService)的过程源代码分析