cathy82008

cathy82008

0个粉丝

5

问答

0

专栏

0

资料

cathy82008  发布于  2018-01-02 16:51:01
采纳率 0%
5个问答
2583

求教大神, 裸板烧录uboot时候,是怎样的流程?

 
裸板烧录uboot时,是个什么样的流程?是先跑一个uboot吗,uboot放哪里跑的,哪些器件需要初始化,其中DDR起的作用?
我来回答
回答5个
时间排序
认可量排序

david

39个粉丝

368

问答

253

专栏

229

资料

david 2018-01-02 18:52:31
认可0
平台都没说,怎么回答。 海思的用fastboot 和  hitool

cathy82008

0个粉丝

5

问答

0

专栏

0

资料

cathy82008 2018-01-02 21:08:30
认可0
我意思是,裸板烧录uboot的时候,海思里面是怎么运作的

mengxp

0个粉丝

18

问答

0

专栏

1

资料

mengxp 2018-01-02 21:52:44
认可0
hi3516cv300 设置fastboot引导
板子上电后会在串口输出握手信息
上位机运行的hitool得到握手信息后发送引导代码,引导代码负责初始化ddr,然后发送uboot,uboot引导后,hitool使用uboot命令进行刷机操作。

Kernel_Lover

0个粉丝

17

问答

0

专栏

0

资料

Kernel_Lover 2018-01-03 09:08:13
认可0
uboot 大致的启动流程:

大多数BootLoader都分为stage1和stage2两大部分,U-boot也不例外。依赖于cpu体系结构的代码(如设备初始化代码等)通常都放在stage1且可以用汇编语言来实现,而stage2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。

1、 stage1(start.s代码结构)

U-boot的stage1代码通常放在start.s文件中,它用汇编语言写成,其主要代码部分如下:
(1) 定义入口。由于一个可执行的image必须有一个入口点,并且只能有一个全局入口,通常这个入口放在rom(Flash)的0x0地址,因此,必须通知编译器以使其知道这个入口,该工作可通过修改连接器脚本来完成。
(2)设置异常向量(exception vector)。
(3)设置CPU的速度、时钟频率及中断控制寄存器。
(4)初始化内存控制器 。
(5)将rom中的程序复制到ram中。
(6)初始化堆栈 。
(7)转到ram中执行,该工作可使用指令ldrpc来完成。

2、 stage2(C语言代码部分)

lib_arm/board.c中的start armboot是C语言开始的函数,也是整个启动代码中C语言的主函数,同时还是整个u-boot(armboot)的主函数,该函数主要完成如下操作:
(1)调用一系列的初始化函数。
(2)初始化flash设备。
(3)初始化系统内存分配函数。
(4)如果目标系统拥有nand设备,则初始化nand设备。
(5)如果目标系统有显示设备,则初始化该类设备。
(6)初始化相关网络设备,填写ip,c地址等。
(7)进入命令循环(即整个boot的工作循环),接受用户从串口输入的命令,然后进行相应的工作。  ---百度百科

hero

0个粉丝

1

问答

0

专栏

0

资料

hero 2018-01-03 08:37:22
认可0
:):):):):):):):):)
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区