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.

AM3352: Starterware和Processor SDK

Part Number: AM3352

根据Processor SDK Linux for AM335X的描述,链接:https://software-dl.ti.com/processor-sdk-linux-rt/esd/AM335X/08_02_00_24/exports/docs/linux/    ,

启动的流程分为:ROM ->SPL ->UBoot ->Kernel

我的理解就是3级的Bootloader结构。ROM内的代码是被固化在芯片内置ROM中的;在这份SDK里,提供了SPL和UBoot。也就是说这里就全包含了。

另外我又看到AM335X支持的Starterware包,里面也包含了Bootloader 组件,链接:https://www.ti.com.cn/tool/cn/STARTERWARE-SITARA?keyMatch=AM335%20STARTERWARE#included

这两个Bootloader的组成到底有啥区别呢?我应该用哪个去启动板子呢?还是说都要?

  • 启动的流程分为:ROM ->SPL ->UBoot ->Kernel

    这个是针对linux的boot流程

    另外我又看到AM335X支持的Starterware包,

    这个是针对裸机程序的二次加载程序。

  • 感谢。那是不是可以理解为先执行Starterware的程序,之后再执行Linux的启动呢。 目标是在板子上跑Linux。

  • starterware和linux是独立的。starter是non OS系统,linux是一种操作系统。

  • hello,shine。

    你说的这个我明白了。

    不过我看到了starterware的手册里说这份工程能编译出一个bootloader,之后把APP拷贝到DDR中执行。

    那么我还有困惑的地方:

        1.我的启动介质是Nor flash,但是starterware中似乎没有提及Nor flash 在上电启动之后的偏移量,是0x800_0000吗,我看好像LinuxSDK的文档中有涉及。代码中拷贝操作的函数也没有出现Nor 相关的宏定义。

        2.其实碰到的问题是这样的。

         一方面,我考虑做双boot的设计,通过上电检查部分地址,选择从哪个boot启动。主要是用于开发固件升级的功能,保证升级过程中出现异常比如断开连接,重启也不会变砖。

        另一方面,我用Nor 作为启动介质。并且sysboot配置为用Nor启动。但是有几根寻址线复位会一直拉高,导致寻址偏移。也就是bootrom并没有读0x800_0000(SDK要求Nor的)上的数据,而是从比如0x80F_0000这个位置开始读,然后所以无法正常启动UBoot。

    我在想,去实现这两个功能是不是应该修改的地方睡觉哦starterware中提供的bootloader的代码,。bootloader在案例中是加载starterware app,那我改成加载u-boot-spl.bin和uboot.img去启动uboot,再去启动内核。相当于是在bootrom和spl之间再叠加一层boot。这样是不是可以呢。

  • 新问题麻烦另起新帖,方便其他客户参考,谢谢!

    另外,我们对starterware软件包不再提供支持。