AWorksLP 样例详解(MR6750)-双核烧录

AWorksLP 对外设进行了高度抽象化,为同一类外设提供了相同的接口,应用程序可以轻松跨平台。本文以MR6750 平台为例,介绍AWorksLP 双核烧录的方法。

简介

【限时优惠】点击「链接」可立即选购MR6750系列核心板

MR6750 双核是集成了两个RISC-V处理器,是两个完全独立的CPU,故HPM双核工程是Core0工程和Core1工程两个独立的工程。因此HPM双核工程编译,其实是两个独立的单核工程的编译。用户只需要建立core0和core1的各自工程编译调试即可。

双核固件烧录

双核的例程是由hart0 启动hart1 的方式, 所以需要两个固件,即hart0 的固件与hart1 的固件。采用汇编incbin "xxx.bin" 的方式,将hart1 的固件包含在hart0 的固件中,所以最终hart0 与hart1 的固件合并成一个elf 或者bin 文件,由调试器下载的芯片中hart0 的固件是在flash 中运行,hart1 的固件是在SDRAM 中运行。

注: HPM6750 总是从hart0 启动,因此hart0 是主核,hart1 是从核,hart1 作为从核不能自主启动,必须由hart0 来启动。

{SDK}demosmulti-core路径下为6750双核例程,hello例程是最基础的双核例程,openamp和rpc是两种多核处理器框架、本小节将基于hello例程介绍双核的程序如何烧录。


图1 例程目录

1. 创建工程

AWorksLP SDK相关使用请参考《AWorksLP SDK快速入门(MR6450)——开箱体验》一文,本文不在赘述。

hello目录下有两个工程,hart0和hart1,分别对应主核和从核的工程、在选择板卡时需要选择EPC6750-AWI-muti板卡。

图2 选择板卡

2. 编译hart1固件

在hart1工程的配置中选择输出文件类型为Raw binary。

图3 Hart1工程配置

Hart1工程选择2 sdram_hart1_debug编译方式,从核的程序将在SDRAM中运行。编译完成后将会在当前工程目录下的hart1project_eclipsesdram_hart1_debug路径下生成HPM6750-MULTI-HART1.bin文件。

图4 编译方式

将HPM6750-MULTI-HART1.bin固件拷贝到对应的板卡路径中的source文件中、{SDK}platformsplatform-hpm-aworks-lpboardsEPC6750-AWI-mutisource。

注意:hpm_hart1_image.S文件中的名称要与从核的固件名称相同。

图5 拷贝固件

3. 编译hart0固件

将hart1固件拷贝完成后、编译hart0固件。主核的程序将在flash中运行、烧录完成后按一下复位键。

图6 hart0编译

4. 例程

Hart1的工程源码如下,在从核中间隔1秒在对应的串口中打印”hart1:hello world! ”。

int aw_main()
{
    aw_kprintf("r
application Start.............. r
");


    while(1) {


        aw_kprintf("hart1: hello world!
");
        aw_mdelay(1000);
    }


    return 0;


}

Hart0的工程源码如下在__start_hart1(void)函数中使用aw_open接口打开核从核、打开后在对应的调试串口中打印”hart0:hello world! ”。

static void __start_hart1(void)
{
    int fd;
    fd = aw_open("/dev/multi_core", AW_O_RDWR, 0);
    if (fd < 0) {
        aw_kprintf("open error, fd: %d
", fd);
    }
    aw_kprintf("open multi_core ok!
");
}


int aw_main()
{
    aw_kprintf("r
application Start.............. r
");


    __start_hart1();


    while(1) {


        aw_kprintf("hart0: hello world!
");
        aw_mdelay(1000);
    }


    return 0;


}

在{SDK}platformsplatform-hpm-aworks-lpboardsEPC6750-AWI-mutiEPC6750-AWI-muti.dts文件中定义了hart0和hart1两个工程分别使用的调试串口号、当使用hart1工程时调试串口为uart13,当使用hart0工程时调试串口为uart0。

注意:若使用的时EPC6750-AWI-L评估板,评估板的uart13串口对应的硬件接的是485,需在gui上使能485功能才能使用,也可直接将uart13改为uart5在排针上有对应接口直接使用即可。

图7 调试串口

代码运行后hart0和hart1所对应的串口的打印信息分别为:

图8 串口打印信息

ZLG商城:https://j.youzan.com/Kt-L3L

ZLG开发者社区:https://z.zlg.cn

更多技术干货可关注“ZLG致远电子”微信公众号

展开阅读全文

页面更新:2024-02-10

标签:时调   板卡   串口   详解   路径   例程   接口   两个   方式   文件   工程

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top