HPM6750集成2个RISC-V 处理器,两个处理器配置相同,但分主从,CPU0 为主CPU,CPU1 为从CPU。
使用多核处理器,主要关心五个问题:
一、从核代码如何生成
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工具来生成从核代码,具体方法是
我这里输入:
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)生成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数据问题,在网上找了一圈也没找到其它生成从核数据的办法,期待官方出详细的从核数据生成的教程,等后续这个问题解决了再体验双核吧(๑→ܫ←)
三、两个内核分别如何调试
四、主从核之间如何通信
五、如何避免同时使用相同外设资源
本帖最后由 太阳上的骑士 于 2022-7-27 11:23 编辑
引用: linusoon 发表于 2022-7-28 11:38 linkfile有同步的更新么? 工程不同,link的地址不同,core1就乱了
两个工程core1用的外设都一样,只不过是逻辑不一样,跟linkfile没啥关系吧。
找了一下没见着linkfile相关的设置
引用: linusoon 发表于 2022-7-29 11:01 link在这里,双核的启动对于片内的地址分布已经选用适合的link,你可以根据工程里的link文件,做自己的 ...
昨天看到这个设置了,在本地文件夹找到这个flash_xip.icf文件,但是没发现咋改
引用: linusoon 发表于 2022-7-30 14:52 你可以先在一个工程里面尝试用不同的link文件编译后看看map文件的差别。 同时看一下芯片自身对于总线地 ...
好的,谢谢分享,我再试试~
引用: tuu 发表于 2022-12-9 09:01 你好 后面的问题主从核之间如何通信有进展了吗
先楫官方回复:先楫官方SDK_env_v0.14.0里有ERPC的示例,这个就是双核通信,可以参考用来解决问题~
SDK下载链接:https://pan.baidu.com/s/1qvyXhhbDmn4ug3oJeHJrbg?pwd=4peg
看看对你有用吧