Hi3556
主要总结海思芯片的启动代码的编译流程及启动流程等
HZero.chen
随风潜入夜,润物细无声
展开
-
Hi3556v200 u-boot+Liteos方案启动流程分析--5.通用uboot 分析之main_loop
1.前言关于main_loop的执行可参考下面的文档,文档中解析了bootcmd环境变量的解析及命令的执行原理参考文档https://blog.csdn.net/xiaochuan110/article/details/78973649uboot命令行解析及运行流程原创 2020-12-10 17:02:24 · 227 阅读 · 0 评论 -
Hi3556v200烧写原理
1.前言对于Hi3556v200的烧写部分,只能根据官方自带的HiBurn工具来进行理解2.uboot烧录原理文档<<HiBurn工具使用指南>>中有如下的描述:uboot 烧写原理:HiBurn 工具在开始烧写后,首选与 bootrom 进行交互,工具 DDR 参数传送到传到 bootrom,即为uboot 下载阶段 5%处,然后初始化 DDR,再把 uboot 传输到 DDR 中,uboot 下载阶段 100%处表示传输完毕,再从 DDR 启动 uboot,uboot原创 2020-12-10 15:39:58 · 909 阅读 · 0 评论 -
u-boot.lds链接文件解析
1.前言本文主要结合The GNU Linker就uboot.lds链接文件进行注释。U-boot版本:u-boot-2016.112. u-boot.lds注释OUTPUT_FORMAT(“elf32-littlearm”, “elf32-littlearm”, “elf32-littlearm”)//定义三种输出文件的格式(大小端) //若有命令行选项-EB, 则使用第2个BFD格式;//若有命令行选项-EL,则使用第3个BFD格式.否则默认选第一个BFD格式OUTPUT_ARCH(a原创 2020-12-10 14:30:41 · 462 阅读 · 0 评论 -
Hi3556v200 u-boot+Liteos方案编译流程分析-7. liteos编译流程
1.前言本文主要就Hi3556v200的U-boot+Liteos方案的编译流程做简要介绍,主要通过make过程的打印来逐步理清编译的过程,本文主要结合编译的打印信息介绍liteos的编译流程U-boot版本:u-boot-2016.112. 编译流程############################################################################################task [2] make liteos############原创 2020-12-08 17:47:56 · 701 阅读 · 0 评论 -
Hi3556v200 u-boot+Liteos方案编译流程分析-6. 内存空间配置
1.前言本文主要就Hi3556v200的U-boot+Liteos方案的编译流程做简要介绍,主要通过make过程的打印来逐步理清编译的过程,本文主要结合编译的打印信息介绍u-boot-hi3556v200.bin的编译过程。编译过程中会调用osdrv_mem_cfg.sh脚本来进行内存地址配置。U-boot版本:u-boot-2016.112. osdrv_mem_cfg.sh脚本说明位于osdrv/osdrv_mem_cfg.sh,它会根据芯片类型的不同来配置不同的地址,并对相关头文件进行修改,修原创 2020-12-08 16:53:30 · 572 阅读 · 0 评论 -
Hi3556v200 u-boot+Liteos方案启动流程分析--4.通用uboot分析之board_init_r
1.前言本文主要就Hi3556v200的U-boot+Liteos方案的启动流程做简要介绍.我们在前面分析过,uboot执行的过程会执行重定位,这也主要是为了为后续执行kenrel代码腾出空间。重定位后,uboot将执行重定位的uboot代码,这其中会执行board_init_r函数,它会遍历并执行一个函数数组。U-boot版本:u-boot-2016.112.init_sequence_r函数数组可以看出init_sequence_r函数数组与init_sequence_f还是有区别的,init_原创 2020-12-08 16:25:01 · 321 阅读 · 0 评论 -
Hi3556v200 u-boot+Liteos方案启动流程分析--3.通用uboot分析之board_init_f
1.前言本文主要就Hi3556v200的U-boot+Liteos方案的启动流程做简要介绍, 前面主要分析了Hi3556v200下的start.S文件,在这之后它将解压通用uboot的代码执行,执行的入口位于通用uboot的start.S文件。通过_main最终调用到board_init_f函数,board_init_f将遍历执行init_sequence_f函数数组。U-boot版本:u-boot-2016.112.init_sequence_f函数数组位于/u-boot-2016.11/com原创 2020-12-08 16:22:26 · 557 阅读 · 0 评论 -
Hi3556v200 u-boot+Liteos方案启动流程分析--2.通用uboot start.S分析
目录1.前言2.主要流程2.1 _start2.2 reset2.3 set SVC32 mode2.4 Setup vector2.5 cpu_init_cp152.6 _main2.6.1 设置初始运行环境2.6.2 board_init_fboard_init_f_alloc_reserveboard_init_f_init_reserveboard_init_f2.6.3 Set up intermediate environment参考文档1.前言本文主要就Hi3556v200的U-boot+原创 2020-12-08 16:18:20 · 871 阅读 · 0 评论 -
Hi3556v200 u-boot+Liteos方案启动流程分析--1.Hi3556v200 start.S分析
目录1.前言2.启动整体流程3.启动流程分析3.1 程序入口3.2 返回调用处3.3 关中断并进入SVC32模式3.4 设置异常向量表3.5 cpu_init_cp153.6 check if ziju flag(TODO)3.7 normal_start_flow3.8 enable syscnt3.9 check_boot_type3.10 do_clr_remap3.11enable I-Cache3.12 ddr_init3.13 check_boot_mode3.14 copy_flash_to原创 2020-12-07 10:31:05 · 876 阅读 · 0 评论 -
Hi3556v200 u-boot+Liteos方案编译流程分析-5. u-boot-hi3556v200.bin编译过程
目录1.前言2.目标依赖3.编译流程3.1 image_data.gzip目标3.2 $(SRC)目标3.3 $(START)目标3.4 $(COBJS)之%.o目标3.5 $(COBJS)之image_data.o目标3.6 $(BOOT).elf目标3.7 $(BOOT).tmp目标3.8 $(BOOT).bin目标1.前言本文主要就Hi3556v200的U-boot+Liteos方案的编译流程做简要介绍,主要通过make过程的打印来逐步理清编译的过程,本文主要结合编译的打印信息介绍u-boot原创 2020-12-07 10:24:41 · 913 阅读 · 0 评论 -
Hi3556v200 u-boot+Liteos方案编译流程分析-4. u-boot.bin编译过程
目录1.前言2.目标依赖3. 编译过程3.1 include/config/%.conf目标(主Makefile)include/config/%.conf编译规则1include/config/%.conf编译规则2include/config/%.conf编译规则33.2 include/config/uboot.release目标(主Makefile)3.3 $(timestamp_h)目标(主Makefile)3.4 $(version_h)目标(主Makefile)3.5 prepare0目标(主原创 2020-12-07 10:18:06 · 964 阅读 · 0 评论 -
Hi3556v200 u-boot+Liteos方案编译流程分析-3. u-boot config编译过程
1.前言本文主要就Hi3556v200的U-boot+Liteos方案的编译流程做简要介绍,主要通过make过程的打印来逐步理清编译的过程,本文主要介绍u-boot config的编译过程U-boot版本:u-boot-2016.112.编译信息make[2]: Entering directory `/data_old/chenbo/Hi3559V200_SmartCam_V5.0.0.1/osdrv/opensource/uboot/u-boot-2016.11’第一次进入u-boot主目录原创 2020-12-07 09:28:54 · 766 阅读 · 0 评论 -
Hi3556v200 u-boot+Liteos方案编译流程分析-2. u-boot总体编译文件介绍
1.前言本文主要就Hi3556v200的U-boot+Liteos方案的编译流程做简要介绍,主要通过make过程的打印来逐步理清编译的过程,本文主要介绍u-boot总体编译文件U-boot版本:u-boot-2016.112.u-boot的总体编译目录u-boot-2016.11|--arch| |--arm| | |--Makefile| | |--cpu| | |--armv7| | |--Makefile| | |--hi355原创 2020-12-06 20:49:08 · 197 阅读 · 0 评论 -
Hi3556v200 u-boot+Liteos方案编译流程分析-1.总体编译流程
1.前言本文主要就Hi3556v200的U-boot+Liteos方案的编译流程做简要介绍,主要通过make过程的打印来逐步理清编译的过程U-boot版本:u-boot-2016.112. 开启编译打印为了能够打印出编译命令和编译信息,需要对Makefile做如下修改编译命令如下:make osdrv V=1 > make.txt 2>&1通过查看make.txt文件,对照Makefile及链接脚本来理解编译流程3. 编译过程3.1 编译准备make[1]: Ent原创 2020-12-06 20:35:02 · 4135 阅读 · 0 评论