4069|9

109

帖子

25

TA的资源

一粒金砂(高级)

楼主
 

【先楫HPM6750EVKMINI测评】4# HPM6750双核体验 [复制链接]

  本帖最后由 太阳上的骑士 于 2022-7-27 11:23 编辑

HPM6750集成2个RISC-V 处理器,两个处理器配置相同,但分主从,CPU0 为主CPU,CPU1 为从CPU。

使用多核处理器,主要关心五个问题:

  1. 从核代码如何生成
  2. 从核如何启动
  3. 两个内核分别如何调试
  4. 主从核之间如何通信
  5. 外设资源出现竞争如何处理

 

一、从核代码如何生成

1、官方提供的最新sdk 0.12.1里面有sdk说明文档,以网页的方式提供,具体位置在:

Sdk目录/hpm_sdk/doc/output/sdk_doc/zh/latest/html/index_zh.html,

双击index_zh.html用浏览器打开

按照doc说明操作,需要设置CMAKE_BUILD_TYPE的值,但是在SEGGER Embedded Stduio里的工程设置里面没有找到相应的参数修改

 

2、找不到相关值的修改后,猜测应该是开发环境不一样的原因,所以回到doc里的HPM SDK概述里面看开发环境如何搭建,这里介绍的开发环境搭建和

HPM6750EVKMINI USER GUIDE介绍的有点不一样。由于本身工作任务比较紧,所以暂时想通过其它办法解决从核代码生成的问题,就没按照doc里的再搭新的开发环境。

 

3、在论坛搜索发现已经有人做过相关实验

https://bbs.eeworld.com.cn/thread-1202275-1-1.html

是通过官方给的python工具来生成从核代码,具体方法是

  1. 正常编写从核功能代码,用SEGGER Embedded Stduio生成bin文件
  2. 打开Windows  cmd,使用官方python工具生成数据文件,在cmd中输入:Sdk目录\tools\python3\python3.exe Sdk目录\hpm_sdk\scripts\ bin2c.py 你的bin文件 > 输出文件

我这里输入:

D:\sdk_env_v0.12.1\tools\python3\python3.exe D:\sdk_env_v0.12.1\hpm_sdk\scripts\bin2c.py D:\sdk_env_v0.12.1\hpm_sdk\samples\drivers\gpio\hpm6750evkmini_build\segger_embedded_studio\Output\Debug\Exe\gpio_example.bin sec_core_img >d:\sec_core_img.c

这样在D盘根目录生成sec_core_img.c文件

 

二、从核如何启动

阅读HPM6700_6400用户手册可知,双核启动步骤如下:

  1. CPU0 将CPU1 的代码镜像地址写入SYSCTL_CPU1_GPR0 寄存器
  2. CPU0 将CPU1 启动代号写入SYSCTL_CPU1_GPR1 寄存器,代号为0xC1BEF1A9
  3. CPU0 将SYSCTL_CPU1_LP [HALT] 位清0,即可释放CPU1

验证:

    1)生成sdk里hpm_sdk\samples\multicore\hello\core0例程SES工程,下载到开发板,按reset键,现象是板载RGB灯R、G、B轮流渐亮渐灭,串口输出数据:

    2)生成sdk中hpm_sdk\samples\drivers\gpio的从核数据文件,用 generate_project -b hpm6750evkmini -t sec_core_img命令生成SES工程,再用SES生成bin文件,最后通过官方提供的bin2c工具生成 sec_core_img的数据,最后把数据替换第一步工程中的 sec_core_img.c文件。下载复位后led没闪烁,但串口有数据,说明core0运行起来了,但core1没启动。

    A、怀疑是core1的代码生成有问题,尝试过使用generate_project -b hpm6750evkmini -t sec_core_img、generate_project -b hpm6750evkmini -t sec_core_img_release都没有用

    B、尝试用sdk中的rgb_led来生成从核数据,替换sec_core_img数据后从核还是不运行

    C、有可能是sdk版本问题,使用0.9.0版本的sdk生成rgb_led的例程,使用generate_project -b hpm6750evkmini -t sec_core_img生成的SES工程编译不通过

 

对比两个core1数据文件差别还挺大的,说明还是生成的core1数据问题,在网上找了一圈也没找到其它生成从核数据的办法,期待官方出详细的从核数据生成的教程,等后续这个问题解决了再体验双核吧(๑→ܫ←)


  

三、两个内核分别如何调试

 

四、主从核之间如何通信

 

五、如何避免同时使用相同外设资源

 

最新回复

nmg
先楫官方回复:先楫官方SDK_env_v0.14.0里有ERPC的示例,这个就是双核通信,可以参考用来解决问题~   SDK下载链接:https://pan.baidu.com/s/1qvyXhhbDmn4ug3oJeHJrbg?pwd=4peg   看看对你有用吧   详情 回复 发表于 2022-12-9 16:00
点赞 关注
 
 

回复
举报

7671

帖子

18

TA的资源

五彩晶圆(高级)

沙发
 

两个一样的核好像用 rpmsg 和remoterpc

个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

linkfile有同步的更新么?

工程不同,link的地址不同,core1就乱了

点评

两个工程core1用的外设都一样,只不过是逻辑不一样,跟linkfile没啥关系吧。 找了一下没见着linkfile相关的设置  详情 回复 发表于 2022-7-28 22:06
 
 
 

回复

109

帖子

25

TA的资源

一粒金砂(高级)

4
 
linusoon 发表于 2022-7-28 11:38 linkfile有同步的更新么? 工程不同,link的地址不同,core1就乱了

两个工程core1用的外设都一样,只不过是逻辑不一样,跟linkfile没啥关系吧。

找了一下没见着linkfile相关的设置

 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

5
 

link在这里,双核的启动对于片内的地址分布已经选用适合的link,你可以根据工程里的link文件,做自己的规划。 

点评

昨天看到这个设置了,在本地文件夹找到这个flash_xip.icf文件,但是没发现咋改  详情 回复 发表于 2022-7-29 12:39
 
 
 

回复

109

帖子

25

TA的资源

一粒金砂(高级)

6
 
linusoon 发表于 2022-7-29 11:01 link在这里,双核的启动对于片内的地址分布已经选用适合的link,你可以根据工程里的link文件,做自己的 ...

昨天看到这个设置了,在本地文件夹找到这个flash_xip.icf文件,但是没发现咋改

 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

7
 

你可以先在一个工程里面尝试用不同的link文件编译后看看map文件的差别。

同时看一下芯片自身对于总线地址的分布,结合多核例程中特有的link文件在进行相应的改动。

 

 

点评

好的,谢谢分享,我再试试~  详情 回复 发表于 2022-7-30 18:35
 
 
 

回复

109

帖子

25

TA的资源

一粒金砂(高级)

8
 
linusoon 发表于 2022-7-30 14:52 你可以先在一个工程里面尝试用不同的link文件编译后看看map文件的差别。 同时看一下芯片自身对于总线地 ...

好的,谢谢分享,我再试试~

 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

9
 

你好 后面的问题主从核之间如何通信有进展了吗

 
 
 

回复

5265

帖子

239

TA的资源

管理员

10
 
tuu 发表于 2022-12-9 09:01 你好 后面的问题主从核之间如何通信有进展了吗

先楫官方回复:先楫官方SDK_env_v0.14.0里有ERPC的示例,这个就是双核通信,可以参考用来解决问题~

 

SDK下载链接:

链接已隐藏,如需查看请登录或者注册

 

看看对你有用吧

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表