这个芯片架构还有点复杂,有三个核,分别是 HCPU, ACPU和LCPU。其中 LCPU 一般用心跑蓝牙协议栈。蓝牙协议栈还是闭源的。这里 HCPU 和 ACPU 合起来组成了 HPSYS,LCPU单独组成 LPSYS。2. 设备树(devicetree, dts)我看了 nxp 和 nordic 对于多核 MCU 架构的dts定义方式,是把所有的核定义在了一个基础 dtsi里,然后在特定的核的 dtsi 定义里再 /delete-node/ 移除掉。我现在并不明白他们为什么要这么使用,问了 zephyr 的专家,也并不确定。所以目前我使用了我自己认为更适合的方式去组织,如果后面遇到了新问题,再考虑修改这个结构。鉴于上面的芯片功能框图,我定义基础的 dts 文件:sf32lb58.dtsi,用于定义整个 SoC 共用的外设;
sf32lb58_hpsys.dtsi,定义 HCPU 和 ACPU 共用的 外设(内存);
sf32lb58_hcpu.dtsi,仅供 HCPU 访问的CPU及内存;
sf32lb58_acpu.dtsi,仅供 ACPU 访问的CPU及内存;
sf32lb58_lpsys.dtsi,定义 LPSYS 访问的设备与内存;
sf32lb58_lcpu.dtsi,定义 LCPU 相关的CPU和内存。
sf32lb586.dtsi:定义 具体 sf32lb586 特定的配置,应该主要是 合封的PSRAM 和 FLASH 的配置。sf32lb586_hcpu.dtsi:这个文件应该由板级 dts 定义包含的头文件
同样还要定义sf32lb586_acpu.dtsi, sf32lb586_lcpu.dtsi注意,上面的截图都只作为参考,最终编译有问题或者别的架构原因,上面的内容还是会变更。下期继续填坑。文章里如果出现错误,或者您有什么建议,欢迎留言指正!感谢!全部0条评论
快来发表一下你的评论吧 !