完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
Platform: RK3288
OS: Android 6.0 Version: v2014.10 bl board_init_f -> crt0.S initcall_run_list(init_sequence_f) -> board_f.c arch_cpu_init -> rk_get_chiptype //获取chip type (rk31xx, rk32xx等) timer_init env_init init_baud_rate serial_init print_cpuinfo //dump cpu/pll info dram_init //获取size以及end address setup_dram_config -> dram_init_banksize show_dram_config ldr pc, =board_init_r -> crt0.S board_init_r -> board_r.c init_sequence_r //调用init_sequence_r中的各个函数。 board_init rk32xx.c //设置machine type以及boot param起始地址,kernel要用到。 initr_serial -> board_r.c //初始化串口。 serial_initialize initr_rk_storage -> //初始化storage board_storage_init -> rk32xx.c StorageInit -> storage.c //初始化eMMC. memFunTab[memdev]->Init //调用emmcFunOp的SdmmcInit() SdmmcInit sdmmcBoot.c 这里还会根据sd里存的信息来区分是要boot还是update. StorageReadFlashInfo -> gpMemFun->ReadInfo -> SdmmcReadFlashInfo sdmmcBoot.c initr_env //初始化u-boot中的环境变量 stdio_add_devices -> //不做什么。 console_init_r //作为device来管理。 board_late_init -> rk32xx.c board_init_adjust_env //初始化bootdelay, bootcmd这些env. load_disk_partitions -> GetParam ParseParam -> //解析parameter文件 ParseLine -> //获取各个参数选项,如machine model, cmdline等。 parse_cmdline -> mtdpart_parse //获取分区表信息 rkimage_prepare_fdt rkimage.c //从boot或者resource image读取fdt地址,resource会覆盖boot.img的fdt. key_init //各种key init pmic_init -> power_rockchip.c //多个型号pmic的init,如rk808, rk818,一旦匹配到成功的就不再尝试其他的了。 pmic_act8846_init //sdk board用的是此IC。 pmic_rk808_init -> pmic_rk808.c //后续项目要替换成这颗。 rk808_parse_dt -> fdt_device_is_available //status为disabled就没必要解析了。 fdt_get_i2c_info //获取i2c address, number, rk808_i2c_probe //detect pmic. fdt_get_regulator_node //获取pmic regulator信息 fdt_regulator_match //获取regulator初始化数据 rk808_set_regulator_init //设置各regulator初始化电压 fdtdec_decode_gpios //获取gpio内容, pwr_hold charger_init i2c_init pmic_rk818_init pwm_regulator_init -> //pwm init. pwm_regulator_parse_dt fg_init //gauge init. SecureBootCheck board_fbt_preboot -> fbt_fastboot_init board_fbt_get_reboot_type //读取reboot flag board_fbt_key_pressed //再次检查key有没有按下来决定进入哪种模式。 board_fbt_low_power_check //电量检查,过低就充电,如果失败就直接关机. fdtdec_get_int //读取u-boot是否显示logo值 drv_lcd_init -> lcd.c lcd_init -> lcd_ctrl_init -> rockchip_fb.c rk_fb_parse_dt -> //从dts中解析出lcd的参数。 rk_fb_pwr_ctr_parse_dt //获取power相关参数 rk_fb_pwr_enable //上电 rkclk_lcdc_clk_set //设置clock rk_lcdc_init //lcdc控制器初始化 rk_lcdc_load_screen //根据不同的接口设置不同的配置到控制器 lcd_clear -> lcd_logo -> //show logo bitmap_plot -> rk_bitmap_from_resource -> show_resource_image -> //name是logo.bmp get_content -> get_base_offset //先从resoure分区获取,失败的话从boot分区获取. lcd_display_bitmap_center board_fbt_low_power_off //如果是低电量而且没在充电,那就显示fail的logo,1s后关机. lcd_standby rk_backlight_ctrl board_fbt_run_recovery //进recovery的情况 board_fbt_run_recovery_wipe_data //wipe data的情况,也是进recovery board_fbt_request_start_fastboot //进fastboot mode rkloader_run_misc_cmd //其他情况 run_main_loop -> main_loop //启动kernel do_bootrk -> cmd_bootrk.c rk_load_image_from_storage -> rkimage_load_image //先尝试从boot.img读取内核以及ramdisk StorageReadLba //如果boot.img没有内核则从kernel中读取 rkimage_load_fdt //从resource分区中读取fdt. rk_load_kernel_logo -> //加载kernel logo get_content //图片存在resource 分区 rk_commandline_setenv do_bootm_linux //加载kernel,这里就是标准u-boot的做法了. |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
2487 浏览 0 评论
2802 浏览 1 评论
2292 浏览 1 评论
3624 浏览 1 评论
4376 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-24 09:51 , Processed in 0.457808 second(s), Total 72, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号