This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335x的启动问题,坐等高手科普!



手上有一块beaglebone的板子,也做了一些实验,这是前言

现在我的需求是,希望能从NOR Flash启动AM335x,当然beaglebone是无能为力了。

根据TRM上所述,有两种方式,一个是MEM启动选择XIP方式,还有一种是FEB(快速外部启动)。

然后问题就来了!

如果用MEM启动,根据TRM上说的,Boot ROM的引导程序会从GPMC的CS0的地址0x08000000地址执行,又说在Boot过程中只有地址线A0~A11有效(26.1.7.2.2),这怎么解释,是不是启动过程中有地址线屏蔽???

如 果选择外部快速启动(fast external booting),TRM上出现了两个地址,GPMC的CS0地址0x00000000(26.1.6.1)和图表中出现的 0x08000000(Figure26-7),难以理解。另外如果选择这种模式启动,是不是意味着启动过程中DDR,PLL等初始化都得用户完成,等于 是抛弃了Boot ROM内的初始化过程???


坐等高手科普讲解,小弟不胜感激涕零!!!

  • 1. 你说的0x8000000,和地址线,一个是memory map,一个是寻址空间。谈不上地址线屏蔽,只是寻址空间有限。

    2. 一个是最开始执行的地址,而另一个是rom code执行完后跳到的一个地址。 系统所需要做ddr,pll的配置,ddr的配置在spl中进行,pll的部分配置在spl进行,部分在uboot中进行。我建议你搞个linux玩玩,不要只看文档

  • 非常感谢你的回答,让我受益匪浅。

    现在还只有beaglebone的板子,正在前期评测,准备自己画板子的,所以一些实践的调试工作还没法进行。

    根据你的意思,是不是说:如果是MEM启动,虽然CPU从0x08000000处执行,但是实际因为启动过程中高位的地址线没办法被驱动,还是在外设的寻址空间0x00000000中执行。

    对于Fast external booting,你说的‘’最开始执行的地址‘’是什么概念,是在rom code执行之前吗?

    谢谢!

  • 我的理解是ARM core会有一个入口地址,大概也是放中断向量表的地方,然后同个这个地方的跳转指令跳到romcode中运行,你可以多看看ARM core的启动的文档,如果有兴趣的话,不过没什么必要花很多时间在这个地方,因为这里的rom code是不公开,会配置就行了

  • 想问一下,那就是说在memory boot模式中,是无法使用NOR flash 启动的 是么?我可以这么理解么?

  • 明兄说的对,其实这不需要太多关注,好吧再最后一个问题,我应该把启动代码烧到FLASH的地址0x00000000还是0x08000000?

    我看到了ICE版本里面原理图的连接方式,地址线从0到15,20到23,中间跳开了几根。

    谢谢

  • 可以从NOR FLASH启动,你可以参考一下TI的ICE版本

  • 对,NOrflash的启动,目前还没有在linux sdk里面支持,如果想搞清楚这个关系,看看ice的sdk,好好读读代码就搞清了,只是看看trm,如果没有相关经验很容易迷惑