TI中文支持网
TI专业的中文技术问题搜集分享网站

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卡把示例运行起来? 

谢谢啦!

BobLu:

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

,

Nancy Wang:

是的,需要通过IPC来加载。参考以下资料看一下。

https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/latest/exports/docs/api_guide_am64x/IPC_GUIDE.html

e2e.ti.com/…/faq-am62x-am64x-how-to-allow-linux-to-load-m4f-r5f-firmware-by-adding-a-resource-table

,

?? ?:

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

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

1、sf probe2、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 2Mdio_open:282EnetPhy_bindDriver:1717EnetPhy_bindDriver:1717PHY 0 is alivePHY 3 is aliveStarting lwIP, local interface IP is dhcp-enabled[LWIPIF_LWIP] NETIF INIT SUCCESSHost MAC address-0 : f4:84:4c:fa:a5:37Host 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.0UDP server listening on port 5001Cpsw_handleLinkUp:1449MAC Port 1: link uplink_callback==UPlink_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.tiimagerename 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方式可以加载起来,说明文件本身正确)

,

Nancy Wang:

?? ? 说:(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和切换模式,就方便多了,谢谢!

,

Nancy Wang:

?? ? 说:是不是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.

赞(0)
未经允许不得转载:TI中文支持网 » AM6412: 怎么使用SD卡运行MCU的示例
分享到: 更多 (0)