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.

AM6412: 怎么使用SD卡运行MCU的示例

Part Number: AM6412

(1)我有一块AM6412-evm开发板。

(2)我设置开发板从SD卡启动,我使用ti的工具刷了SD卡,此时sd卡包括boot分区和ext4分区,此时linux可以正常运行,A53核的功能正常。

(3)我现在需要运行mcu_plus_sdk_am64x_08_06_00_43里面的示例,于是我下载了am64x的mcu的sdk,并编译了examples/networking/lwip/enet_lwip_cpsw/am64x-evm/r5fss0-0_freertos

..........................

Boot image: am64x:r5fss0-0:freertos:ti-arm-clang /home/rlk/ti/mcu_plus_sdk_am64x_08_06_00_43/examples/networking/lwip/enet_lwip_cpsw/am64x-evm/r5fss0-0_freertos/ti-arm-clang/enet_lwip_cpsw.release.appimage.hs_fs Done !!!

上述信息提示编译成功。

(4)我怎么从SD卡加载运行examples/networking/lwip/enet_lwip_cpsw/am64x-evm/r5fss0-0_freertos这个例子?

(5)问题可以简单概括为:以前A53核的应用我可以用sd加载起来;现在这个MCU的例子是R5核,我怎么通过sd卡把示例运行起来? 

谢谢啦!

  • 这个需要由linux这边来加在,你可以看一下文档:software-dl.ti.com/.../Foundational_Components_IPC64x.html

  • 我不是打算运行linux,我打算只运行R5核。

    我首先设置开发板在SD卡模式启动,然后插入包含uboot的SD卡,随后我在uboot下使用tftp刷了flash,命令如下:

    1、sf probe
    2、setenv ipaddr 128.0.0.30;setenv serverip 128.0.0.119; tftp 0x82000000 sbl_ospi.release.tiimage;
    3、sf update 0x82000000 0x0 4d7df(文件长度)

    4、setenv ipaddr 128.0.0.30;setenv serverip 128.0.0.119; tftp 0x82000000 enet_lwip_cpsw.release.appimage;
    5、sf update 0x82000000 0x80000 3ffdc(文件长度)

    然后我设置开发板从ospi启动,连接串口后,我看到R5核运行起来了。运行信息如下所示:

    Image loading done, switching to application ...
    ==========================
    ENET LWIP App
    ==========================
    Enabling clocks!
    EnetAppUtils_reduceCoreMacAllocation: Reduced Mac Address Allocation for CoreId:1 From 4 To 2
    Mdio_open:282
    EnetPhy_bindDriver:1717
    EnetPhy_bindDriver:1717
    PHY 0 is alive
    PHY 3 is alive
    Starting lwIP, local interface IP is dhcp-enabled
    [LWIPIF_LWIP] NETIF INIT SUCCESS
    Host MAC address-0 : f4:84:4c:fa:a5:37
    Host MAC address-0 : 70:ff:76:1e:2b:66
    [LWIPIF_LWIP] NETIF INIT SUCCESS
    [LWIPIF_LWIP] Enet has been started successfully
    [0]status_callback==UP, local interface IP is 0.0.0.0
    [1]status_callback==UP, local interface IP is 0.0.0.0
    UDP server listening on port 5001
    Cpsw_handleLinkUp:1449
    MAC Port 1: link up
    link_callback==UP
    link_callback==UP

    R5核从OSPI模式启动算是可以了。谢谢解答!

    还有2个新问题问一下:

    (1)R5起来后,ip是0.0.0.0(如上图所示),udp端口是5001,我怎么通过pc机进一步测试开发板的网络呢(没ip)?

    (2)tools\boot\sbl_prebuilt\am64x-evm里面的sbl_sd.release.tiimage怎么能用起来?

       我按照手册的指导,将sbl_null.release.tiimage拷贝到SD卡,然后将其重命名为tiboot3.bin, 然后我设置从SD卡启动,打印结果与手册一样。

      copy file to SD card => ${SDK_INSTALL_PATH}/tools/boot/sbl_prebuilt/am64x-evm/sbl_null.release.tiimage
      rename in SD card as => tiboot3.bin

         随后我把enet_lwip_cpsw.release.appimage和sbl_sd.release.tiimage拷贝到SD卡,然后将sbl_sd.release.tiimage重命名为tiboot3.bin, 然后我设置从SD卡启动,会打印一些信息就停下来了,没有加载enet_lwip_cpsw.release.appimage,不知道哪里错误了?是不是enet_lwip_cpsw.release.appimage需要重命名? (备注:这个文件从OSPI方式可以加载起来,说明文件本身正确)

  • (1)R5起来后,ip是0.0.0.0(如上图所示),udp端口是5001,我怎么通过pc机进一步测试开发板的网络呢(没ip)?

    参考以下FAQ看一下是否有帮助:

    e2e.ti.com/.../faq-processor-sdk-am64x-configure-static-ip-with-mcu-sdk-enet_lwip_cpsw-or-enet_lwip_icssg-example

  • 刚才我采用了类似方法,如下:

    static char *ipaddr_str = "128.0.0.10";
    static char *netmask_str = "255.255.0.0";
    static char *gateway_str = "128.0.0.1";
    ipaddr.addr = ipaddr_addr(ipaddr_str);
    netmask.addr = ipaddr_addr(netmask_str);
    gw.addr = ipaddr_addr(gateway_str);

    静态配置了ip,已看到ip,网络已可以ping通啦。谢谢解答!

    还请帮解答一下上面的第二个问题:sbl_sd.release.tiimage怎么能用起来? 如果能用起来的话就不需要刷flash和切换模式,就方便多了,谢谢!

  • 是不是enet_lwip_cpsw.release.appimage需要重命名?

    重命名为app。

    我看到手册上有这样的提示

    • Similarly you can copy any appimage file to the SD card and rename in the SD card as "app" so that the SBL can pick it up.