当前位置: 首页 > wzjs >正文

有哪些好的做网站公司选择宁波seo优化公司

有哪些好的做网站公司,选择宁波seo优化公司,盐山县网站建设公司,市场监管局的作用上一篇介绍到start.S 最后一个指令是跳转到_main, 接下来分析 __main 都做了什么 arch/arm/lib/crt0.S __main 注释写的很详细,主要分为5步 1. 准备board_init_f的运行环境 2. 跳转到board_init_f 3. 设置broad_init_f 申请的stack 和 GD 4. 完整u-boot 执行re…

上一篇介绍到start.S 最后一个指令是跳转到_main, 接下来分析 __main 都做了什么

arch/arm/lib/crt0.S

__main 注释写的很详细,主要分为5步

1. 准备board_init_f的运行环境

2. 跳转到board_init_f

3. 设置broad_init_f 申请的stack 和 GD

4. 完整u-boot 执行relocate_code, 将u-boot 搬到board_init_f计算出的目的地址, tpl, spl 跳回crt0

5. 设置board_init_r运行环境,完整u-boot 有些cpu 剩余工作由c_runtime_cpu_setup完成

6. 跳转到board_init_r

详细分析如下:

1. CONFIG_TPL_NEEDS_SEPARATE_STACK=1 CONFIG_TPL_STACK 0xff8effff

	bic	r0, r0, #7	/* 8-byte alignment for ABI compliance */mov	sp, r0bl	board_init_f_alloc_reservemov	sp, r0/* set up gd here, outside any C code */mov	r9, r0bl	board_init_f_init_reservebl	board_init_f_boot_flagsbl	board_init_f

2. board_init_f

代码位于arch/arm/mach-rockchip/tpl.c

CONFIG_SPL_FRAMEWORK=1

CONFIG_TINY_FRAMEWORK=n

CONFIG_DEBUG_UART=1

CONFIG_TPL_SERIAL=1

debug_uart_init => 到此可以用简单版的print, c标准printf 还不能用

rockchip_stimer_init => timer 相关,暂时用不到

2.1 spl_early_init

 tpl/spl 中的大部分工作都是在这个函数中完成,代码位置 common\spl\spl.c, 主要完成

a. fdtdec_setup, 设置fdt,

b. dm_init_and_scan, 初始化所有挂在dm 架构上的驱动

tpl 中目前有如下几个,其中就包含了TPL 的主要功能,初始化DRAM, 即 .u_boot_list_2_driver_2_dmc_rk3399

 .u_boot_list_2_driver_2_clk_fixed_rate
 .u_boot_list_2_driver_2_clk_rk3399
 .u_boot_list_2_driver_2_dmc_rk3399
 .u_boot_list_2_driver_2_firmware
 .u_boot_list_2_driver_2_generic_syscon
 .u_boot_list_2_driver_2_psci
 .u_boot_list_2_driver_2_rockchip_efuse
 .u_boot_list_2_driver_2_rockchip_rk3399_pmuclk
 .u_boot_list_2_driver_2_root_driver
 .u_boot_list_2_driver_2_simple_bus_drv
 .u_boot_list_2_driver_2_syscon_rk3399

2.2 返回BROM

back_to_bootrom 调用 longjmp(brom_ctx, BROM_BOOT_NEXTSTAGE);

x0 为 brom_ctx, x1 为BROM_BOOT_NEXTSTAGE=1

通过longjump 返回到上一篇中的setjmp 下一条指令,并且ret 被替换为longjmp 返回值,

ret=0, 可以boot next stage,  不过目前还不知具体原理,有了解的欢迎评论区讨论

        /*
         * To instruct the BROM to boot the next stage, we
         * need to return 0 to it: i.e. we need to rewrite
         * the return code once more.
         */
        ret = 0;

#if defined(CONFIG_TPL_ROCKCHIP_BACK_TO_BROM) && !defined(CONFIG_TPL_BOARD_INIT)back_to_bootrom(BROM_BOOT_NEXTSTAGE);
#endif
ENTRY(longjmp)ldp  x19, x20, [x0,#0]ldp  x21, x22, [x0,#16]ldp  x23, x24, [x0,#32]ldp  x25, x26, [x0,#48]ldp  x27, x28, [x0,#64]ldp  x29, x30, [x0,#80]ldr  x2, [x0,#96]mov  sp, x2/* Move the return value in place, but return 1 if passed 0. */adds x0, xzr, x1csinc x0, x0, xzr, ne/* invalid icache for cortex a35 */
branch_if_a35_core x1, __asm_invalidate_icache_allret
ENDPROC(longjmp)
http://www.dtcms.com/wzjs/54844.html

相关文章:

  • 网站制作大概费用如何优化网站首页
  • 软件下载类型网站怎么做搜索引擎优化包括哪些
  • 毕业设计h5网站制作世界足球排名前100名
  • 简单网站的设计与制作推广是什么意思
  • wordpress下载证书后网络优化工程师主要负责什么工作
  • 有专门做网站的公司吗sem竞价推广代运营
  • aspnet网站开发教程快速排名怎么做
  • 网站做文件检查北京seo顾问外包
  • 基层建设网站百度推广开户代理
  • ui设计原型图衡阳seo快速排名
  • 网站主页与导航栏的设计pc网站优化排名
  • 网站建设外包还是自己做个人推广app的妙招
  • 程序代码优化网站北京正规seo搜索引擎优化价格
  • 网站建设以及运营方面网络推广和seo
  • 灰色网站建设优化大师客服电话
  • ftp搭建wordpress黑帽seo
  • 成都品牌推广黑帽seo是什么意思
  • 如何用电脑做网站时空seo助手
  • wordpress的技术特点怎么样做免费的百度seo
  • 哪个网站可以做推手百度指数怎样使用
  • 如何增强网站的安全性手机百度app免费下载
  • 西部建设网站杭州seo外包
  • 做的网站需要买什么服务器seo销售
  • 网络运维与安全如何优化搜索引擎
  • 苏州高端网站制作营销型网站建设优化建站
  • 做问卷调查用哪个网站好泉州百度网站推广
  • 南京建站服务百度手机助手app安卓版官方下载
  • 北京网站设计制作招聘信息数据分析网
  • 网站使用网络图片做素材 侵权吗app开发网站
  • 民政部门网站建设方案友情链接地址