0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

ZLG致远电子 2023-09-21 08:26 次阅读

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

92f45f0c-5815-11ee-9788-92fbcf53809c.jpg简介

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


9301a16c-5815-11ee-9788-92fbcf53809c.jpg双核固件烧录

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

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

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

9310e190-5815-11ee-9788-92fbcf53809c.png

图1例程目录

1.创建工程

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

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

931c42c4-5815-11ee-9788-92fbcf53809c.png

图2选择板卡

2. 编译hart1固件在hart1工程的配置中选择输出文件类型为Raw binary。9323609a-5815-11ee-9788-92fbcf53809c.png图3Hart1工程配置Hart1工程选择2 sdram_hart1_debug编译方式,从核的程序将在SDRAM中运行。编译完成后将会在当前工程目录下的hart1\project_eclipse\sdram_hart1_debug路径下生成HPM6750-MULTI-HART1.bin文件。

932cd0f8-5815-11ee-9788-92fbcf53809c.png

图4编译方式

将HPM6750-MULTI-HART1.bin固件拷贝到对应的板卡路径中的source文件中、{SDK}\platforms\platform-hpm-aworks-lp\boards\EPC6750-AWI-muti\source。

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

9335463e-5815-11ee-9788-92fbcf53809c.png图5拷贝固件3. 编译hart0固件

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

933f0f70-5815-11ee-9788-92fbcf53809c.png

图6hart0编译4. 例程Hart1的工程源码如下,在从核中间隔1秒在对应的串口中打印”hart1:hello world!\n”。

int aw_main(){ aw_kprintf("\r\napplication Start.............. \r\n");
while(1) {
aw_kprintf("hart1: hello world!\n"); aw_mdelay(1000); }
return 0;
}

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

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\n", fd); } aw_kprintf("open multi_core ok!\n");}
int aw_main(){ aw_kprintf("\r\napplication Start.............. \r\n");
__start_hart1();
while(1) {
aw_kprintf("hart0: hello world!\n"); aw_mdelay(1000); }
return 0;
}

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

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

934fd29c-5815-11ee-9788-92fbcf53809c.png图7调试串口代码运行后hart0和hart1所对应的串口的打印信息分别为:935bebe0-5815-11ee-9788-92fbcf53809c.png图8串口打印信息

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18797

    浏览量

    226343
  • 接口
    +关注

    关注

    33

    文章

    8153

    浏览量

    149670
  • SDK
    SDK
    +关注

    关注

    3

    文章

    996

    浏览量

    45311
收藏 人收藏

    评论

    相关推荐

    STM32H747如何用JLINK调试?

    1.我之前是在STM32H747的官方开发板discover上进行调试,板子上自带了STlink调试器,按照官方文档配置可以进行 调试 2.目前自己设计的板子上是调试接口是SWD接口,手上只有
    发表于03-28 08:58

    PSoC架构中都可以访问全部外设吗?

    你好!如标题:PSoC 架构中两个内核对芯片的全部外设都有直接访问能力嘛?如果都可以直接访问,那IPC模块的主要应用场景是哪些呢?
    发表于02-02 11:44

    stc51单片机怎么烧录

    烧录STC51单片机是一项常见的操作,下面将详细介绍如何进行 烧录以及所需的步骤和工具。本文将按照如下顺序进行 详解: STC51单片机简介 硬件 烧录工具介绍 硬件
    的头像 发表于01-02 17:41 2096次阅读

    烧录完成的盘装芯片是怎么运输的#盘装烧录

    芯片 烧录
    acroview123
    发布于 :2023年12月11日 19:13:20

    AWorksLP应用笔记:重定向printf函数

    printf函数作为标准库定义的格式化输出方式,本文将介绍其在 AWorksLP下默认适配以及重映射至热拔插设备端口的实现。默认适配 AWorksLP中默认已经对printf函数完成相关适配工作,且默认
    的头像 发表于11-25 08:24 435次阅读
    <b class='flag-5'>AWorksLP</b>应用笔记:重定向printf函数

    lpc54110怎样进行的软件烧录

    如题,怎样给第二个 烧录系统
    发表于11-10 06:22

    无法用start gui生成双例程

    当我尝试用start gui生成一个 支行的hello程序来学习的时候,发生提示错误,如下图所示: 改选 6750evk等其它板子也不行,提示的错误一 。 请教各位大佬,这是什么情况,
    发表于10-29 11:16

    亮钻科技D-3568主板烧录教程

    本固件 烧录教程,针对基于瑞芯微平台的主板,以亮钻科技的D-3568主板为 烧录方式采用常用的USB OTG,整个教程仅3个步骤,紧跟步骤操作,轻松上手。
    的头像 发表于10-27 09:35 2214次阅读
    亮钻科技D-3568主板<b class='flag-5'>烧录</b>教程

    MindSDK应用基础——TIM模块

    MindSDK应用基础——TIM模块
    的头像 发表于10-25 16:25 397次阅读

    将HPM6750IVM2的xpi模式更改为标准spi模式

    现在板上Flash使用的是标准spi模式,xpi_DQ3脚没有接到Flash上,所以 烧录不了程序,现在需要将 6750的xpi模式配置为标准spi,想请教一下各位大佬
    发表于10-12 14:46

    AWorksLP详解MR6750)——通信

    AWorksLP对外设进行了高度抽象化,为同一类外设提供了相同的接口,应用程序可以轻松跨平台。本文以 MR6750平台为 ,介绍 AWorksLP
    的头像 发表于09-27 08:26 464次阅读
    <b class='flag-5'>AWorksLP</b> <b class='flag-5'>样</b><b class='flag-5'>例</b><b class='flag-5'>详解</b>(<b class='flag-5'>MR6750</b>)——<b class='flag-5'>双</b><b class='flag-5'>核</b>通信

    器件入门

    德赢Vwin官网 网站提供《 器件入门.pdf》资料免费下载
    发表于09-25 10:03 0次下载
    <b class='flag-5'>双</b><b class='flag-5'>核</b>器件入门

    AWorksLP详解MR6750)——调试

    AWorksLP对外设进行了高度抽象化,为同一类外设提供了相同的接口,应用程序可以轻松跨平台。本文以 MR6750平台为 ,介绍 AWorksLP
    的头像 发表于09-23 08:26 451次阅读
    <b class='flag-5'>AWorksLP</b> <b class='flag-5'>样</b><b class='flag-5'>例</b><b class='flag-5'>详解</b>(<b class='flag-5'>MR6750</b>)——<b class='flag-5'>双</b><b class='flag-5'>核</b>调试

    MR6750系列核心板介绍

    MR6750系列核心板基于先楫半导体的HPM 6750IVM2开发,集成了两个RISC-V处理器,主频高,支持高速数据处理能力,具有丰富的通信接口,适合于工业控制、仪器仪表、电机控制等应用场合。
    的头像 发表于09-22 11:18 569次阅读

    STM32WB产品详解及FUS无线协议栈升级

    STM32WB产品 详解及FUS无线协议栈升级2.4GHz无线 STM32WB, 采用SoC单芯片设计,支持多协议射频。
    发表于09-06 06:35