摘要: 我们已经看完了XLOADER_ENTRY里调用的前两个标号的代码,分别是sys_init和ddr_init。对于一个嵌入式系统来说,这两 个部分的代码是在一开始就执行的,至少是在从bootrom里面的firmware出来之后最初执行的代码,也是我们自己能够控制的最初的代码(在 bootrom里面的f... 阅读全文
posted @ 2013-07-22 16:29 毛毛虫的薄刻 阅读(242) 评论(0) 推荐(0)
摘要: 在开始看Xloader_Entry的代码之前,我想先总结一下从芯片上电到开始运行Xloader的代码的过程,这是我目前理解的一个过程,可能有所出入,待以后继续完善。当 系统上电之后,首先会将PC寄存器设置成BootRom里面的代码对应的一个地址。BootRom是芯片内部集成的一块很小的存储区,里面一... 阅读全文
posted @ 2013-07-22 16:29 毛毛虫的薄刻 阅读(233) 评论(0) 推荐(0)
摘要: 在PCIe总线中,有些TLP含有Data Payload,如存储器写请求、存储器读完成TLP等。在PCIe总线中,TLP含有的Data Payload大小与Max_Payload_Size、Max_Read_Request_Size和RCB参数相关。下文将分别介绍这些参数的使用。 5.4.1 ... 阅读全文
posted @ 2013-07-22 16:28 毛毛虫的薄刻 阅读(601) 评论(0) 推荐(0)
摘要: TLP的路由是指TLP通过Switch或者PCIe桥片时采用哪条路径,最终到达EP或者RC的方法。PCIe总线一共定义了三种路由方法,分别是基于地址(Address)的路由,基于ID的路由和隐式路由(Implicit)方式。 存储器和I/O读写请求TLP使用基于地址的路由方式,这种方式使用TL... 阅读全文
posted @ 2013-07-22 16:28 毛毛虫的薄刻 阅读(573) 评论(0) 推荐(0)
摘要: 这里我们来看XLOADER_ENTRY中调用的第二个标号ddr_init处的代码,这部分代码的作用是对外部内存SDRAM进行初始化,在我 spearplus开发板中,使用的是DDR SDRAM。在调用ddr_init之前,外部内存是不能用的,因为外部内存的时钟以及控制寄存器都还没有初始化,因此此时只... 阅读全文
posted @ 2013-07-22 16:28 毛毛虫的薄刻 阅读(346) 评论(0) 推荐(0)
摘要: 上一篇文章对XLOADER_ENTRY进行了分析,看到其中调用的第一个标号就是sys_init,本文就对这个标号对应的代码段进行粗略的分析,这里我也还有好多没有搞明白的,就先留着,日后慢慢明白,先把自己目前能够看明白的东西记下来。另外,需要说明的是,像sys_init以及后续还要讲的ddr_init... 阅读全文
posted @ 2013-07-22 16:28 毛毛虫的薄刻 阅读(180) 评论(0) 推荐(0)
摘要: 根据上文中获得的线索,本文分析init.S中的XLOADER_ENTRY。在init.S中,定义了好多与平台相关的寄存器地址宏以及好多其他函数,我们在用到的时候再回过头来分析,这里,我们只看其中的一个函数(其实是一个标号,我们暂且称之为函数也无妨)——XLOADER_ENTRY。好了,废话不多说,来... 阅读全文
posted @ 2013-07-22 16:28 毛毛虫的薄刻 阅读(160) 评论(0) 推荐(0)
摘要: 本文中的所有代码版本都是基于ST的SpearPlus开发板的。xloader是在系统上电之后,执行完ROM中的frimware后最先开始执行的用户程序,它的体积很小,执行的功能也很简单,主要是对系统时 钟以及外部SDRAM进行初始化,初始化完成之后就检查Flash中的uboot image是否准备好... 阅读全文
posted @ 2013-07-22 16:28 毛毛虫的薄刻 阅读(196) 评论(0) 推荐(0)
摘要: (8) USB 操作指令指令功能usb reset初始化USB控制器usb stop [f]关闭USB控制器usb tree已连接的USB设备树usb info [dev]显示USB设备[dev]的信息usb storage显示已连接的USB存储设备usb dev [dev]显示和设置当前USB存储... 阅读全文
posted @ 2013-07-22 16:28 毛毛虫的薄刻 阅读(881) 评论(0) 推荐(0)
摘要: U-boot发展到现在,他的命令行模式已经非常接近Linux下的shell了,命令行模式模式下支持“Tab”键的命令补全和命令的历史记录功能。而且如果你输入的命令的前几个字符和别的命令不重复,那么你就只需要打这几个字符即可,比如我想看这个U-boot的版本号,命令就是“ version”,但是在所有... 阅读全文
posted @ 2013-07-22 16:28 毛毛虫的薄刻 阅读(335) 评论(0) 推荐(0)