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串口打印信息

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

    关注

    68

    文章

    20325

    浏览量

    254683
  • 接口
    +关注

    关注

    33

    文章

    9588

    浏览量

    157591
  • SDK
    SDK
    +关注

    关注

    3

    文章

    1110

    浏览量

    51985
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    烧录芯片是什么意思?以F29-38门铃音乐芯片为解析

    在智能硬件开发中,“烧录芯片”是一个关键步骤,但许多初学者可能对其含义和操作流程感到困惑。本文将以F29-38 4和弦门铃音乐芯片为,详细解释烧录芯片的定义、作用、方法及注意事项,帮助您快速掌握
    的头像 发表于 04-17 15:30 159次阅读

    固件烧录速度实测:JTAG比UART快6.8倍

    在批量生产场景中,固件烧录效率直接影响产线节拍与交付能力。如何选择最优烧录方式?本文以ZLG致远电子MR6450系列核心板为,通过实测数据为您解析。
    的头像 发表于 01-27 11:34 428次阅读
    固件<b class='flag-5'>烧录</b>速度实测:JTAG比UART快6.8倍

    烧录IC就是芯片烧录!新手必读的IC烧录基础指南

    本文为新手科普 IC 烧录(即芯片烧录)知识,明确其本质是通过专用设备将二进制程序文件写入集成电路的过程,非明火操作。介绍了烧录必备的烧录器、烧录
    的头像 发表于 12-25 13:46 670次阅读

    MR-VMU-RT1176快速上手:开启移动机器人车辆管理单元设计之旅

    MR-VMU-RT1176 简介 MR-VMU-RT1176 采用了 i.MX RT1176 MCU,其中一个 Arm® Cortex® - M7 内核运行频率高达 1 GHz
    的头像 发表于 12-24 11:30 660次阅读

    请问芯源的MCU如何烧录备份?

    芯源的MCU如何烧录备份?有详细的教程嘛?
    发表于 11-19 06:02

    基于开源鸿蒙的图片编辑开发(2)

    本期内容介绍基于开源鸿蒙在RK3568上开发图片编辑的全流程,分为上篇和下篇,本篇为下篇,主要介绍标记、保存图片功能。
    的头像 发表于 10-31 09:19 3333次阅读
    基于开源鸿蒙的图片编辑开发<b class='flag-5'>样</b><b class='flag-5'>例</b>(2)

    基于开源鸿蒙的图片编辑开发(1)

    本期内容介绍基于开源鸿蒙在RK3568上开发图片编辑的全流程,分为上篇和下篇,本篇为上篇,主要介绍添加相册图片、编译图片功能。
    的头像 发表于 10-31 09:16 3197次阅读
    基于开源鸿蒙的图片编辑开发<b class='flag-5'>样</b><b class='flag-5'>例</b>(1)

    蜂鸟E203移植到FPGA开发板前的IP化工作

    蜂鸟E203软工作的主频为16MHz高频时钟和3.2768KHz低频时钟,并且不同开发板提供的晶振频率不同,因此需要化mmcm IP和reset IP将外部晶振时钟转换为
    发表于 10-27 07:35

    效率翻倍!量产烧录工具使用技巧大公开~

    告别繁琐烧录流程!这款高效量产工具让你事半功倍。今天把压箱底的使用技巧全公开,简单几步轻松上手,不领真的亏了! 本文以Air780EPM开发板为,演示量产烧录工具的使用步骤。   最新量产
    的头像 发表于 10-09 18:50 524次阅读
    效率翻倍!量产<b class='flag-5'>烧录</b>工具使用技巧大公开~

    如何在rt-thread studio上开发STM32H747这类的单片机?

    如题,我希望在rt-thread studio上开发STM32H747IIT6这款单片机,在keil里两个的代码是完全隔离的,分别在两个工程中编写。 但是在rt-thread studio上生成的标准版工程只有一个工程,想
    发表于 09-19 08:08

    单核CPU网关和CPU网关有什么区别

    单核CPU网关与CPU网关的核心区别在于处理能力、多任务效率、性能表现及适用场景,CPU网关在多任务处理、复杂计算和响应速度上具有显著优势,而单核CPU网关则更适合轻量级、低负
    的头像 发表于 07-05 14:37 1288次阅读

    请问的芯片如何调试?

    的芯片如何调试?比如有很多M4+M0的芯片,是分开调试合适可以一起调试?
    发表于 06-19 07:32

    Analog Devices Inc. ADSP-SC592 SHARC+®DSP数据手册

    Analog Devices ADSP-SC592 SHARC+^®^ DSP基于SHARC+和Arm^®^ Cortex ^®^ -A5内核。这些数字信号处理器(DSP)采用
    的头像 发表于 06-07 11:37 1463次阅读
    Analog Devices Inc. ADSP-SC592 SHARC+®<b class='flag-5'>双</b><b class='flag-5'>核</b>DSP数据手册

    #烧录芯片 #单片机 #存储芯片 #烧录机 #烧录器 什么是烧录

    烧录
    jf_99460966
    发布于 :2025年05月29日 11:25:25

    全志科技机器人专用芯片MR527与MR813特性概述

    全志科技机器人专用芯片MR527是八高性能机器人专用芯片; MR527系列芯片集成了8Arm® Cortex®-A55 CPU、NPU、-GPU、MCU等多个高性能计算单元,具有强
    的头像 发表于 04-24 14:58 4322次阅读
    全志科技机器人专用芯片<b class='flag-5'>MR</b>527与<b class='flag-5'>MR</b>813特性概述