公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

你好。
有人可以向我解释一下 Cortex® M0 的代码是由谁生成的吗?
 我记得在 PSoC™ creator 中,每个处理器都有两个主文件。 再加上两个旧文件。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Cortex-M0-in-modus-toolbox/td-p/669793

0 点赞
1 解答
Translation_Bot
Community Manager
Community Manager
Community Manager

@Arpit_S
有趣。 我不知道 DUAL_SENSOR_BOX_KIT 的核心项目。 感谢您的介绍。

但是,在深入研究构建过程后,我发现 TESTBOARD_150PC_OUT 单核应用程序中发生了什么。
在我看来,有一些针对 Cortex® M0+ 的预构建应用程序,它们以 C 常量uint8_t数组的形式提供。 (它们位于 https://github.com/Infineon/cat1cm0p存储库,可以在主生成文件中使用组件进行选择)。 该阵列被限制为放置在闪存的cy_m0p_image 部分(这是闪存的开头),并将编译为普通的 Cortex® M4 源文件,并将使用与 Cortex® M4 相同的链接器脚本进行链接。
在 Cortex® M4 链接器脚本中,整个内部闪存用作闪存部分,但FLASH_CM0P_SIZE为 M4 代码的文本部分创建偏移量 Cortex® 。
我找不到的唯一缺失部分是 Cortex® m0 代码如何了解 FLASH_CM0P_SIZE? 我们可以将 FLASH_CM0P_SIZE 更改为任意数字吗? 或者它是一个预定义的值,必须与我们为 Cortex® M0+ 选择的应用程序一致?

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Cortex-M0-in-modus-toolbox/m-p/670309

在原帖中查看解决方案

0 点赞
6 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

@MiladMrad

 

同样 ModusToolbox™ ,如果你创建一个 DUAL_SENSOR_BOX_KIT 核心应用程序,你也有两个 main.c 即每个处理器的每个主文件。 可以通过创建核心项目的代码示例来测试它 DUAL_SENSOR_BOX_KIT 。

请添加有关“Cortex® M0 代码由谁生成?"

亲切的问候

Arpit Srivastav

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Cortex-M0-in-modus-toolbox/m-p/669832

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

@Arpit_S
有趣。 我不知道 DUAL_SENSOR_BOX_KIT 的核心项目。 感谢您的介绍。

但是,在深入研究构建过程后,我发现 TESTBOARD_150PC_OUT 单核应用程序中发生了什么。
在我看来,有一些针对 Cortex® M0+ 的预构建应用程序,它们以 C 常量uint8_t数组的形式提供。 (它们位于 https://github.com/Infineon/cat1cm0p存储库,可以在主生成文件中使用组件进行选择)。 该阵列被限制为放置在闪存的cy_m0p_image 部分(这是闪存的开头),并将编译为普通的 Cortex® M4 源文件,并将使用与 Cortex® M4 相同的链接器脚本进行链接。
在 Cortex® M4 链接器脚本中,整个内部闪存用作闪存部分,但FLASH_CM0P_SIZE为 M4 代码的文本部分创建偏移量 Cortex® 。
我找不到的唯一缺失部分是 Cortex® m0 代码如何了解 FLASH_CM0P_SIZE? 我们可以将 FLASH_CM0P_SIZE 更改为任意数字吗? 或者它是一个预定义的值,必须与我们为 Cortex® M0+ 选择的应用程序一致?

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Cortex-M0-in-modus-toolbox/m-p/670309

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

是的,你可以更改 FLASH_CM0P_SIZE。 该值在 CM0+ 链接器脚本上 TLE9243QK_BASE_BOARD 。 它应该与你在那里分配的值相匹配。 在 DUAL_SENSOR_BOX_KIT-cpu 代码示例中,它被设置为 templates/TARGET_xxx/COMPONENT_CM0P/Arm®/linker.ld 中的0x4400:

闪存 (rx):ORIGIN = 0x1000000,长度 = 0x4400

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Cortex-M0-in-modus-toolbox/m-p/670319

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

预构建的 M0+ 二进制文件必须具有特定大小(不能更小,否则将运行 TESTBOARD_150PC_OUT 内存。 不能更大,因为 CM4 启动器地址是固定的)。

如果您更改 M0+ 闪存大小,则需要在 M4 代码上反映出来,否则会出现冲突。 可能在同一个地址放了代码。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Cortex-M0-in-modus-toolbox/m-p/670796

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

是啊。
我就是这么想的。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Cortex-M0-in-modus-toolbox/m-p/670896

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

@RodolfoGL
我最关心的是单核应用程序。 是否可以使用相同的预构建 Cortex® M0+ 二进制文件并为 M4 代码 Cortex® 任意地址?
(我的猜测是否定的。 由于 Cortex® 需要更改 M0 代码才能采用新地址。 )

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Cortex-M0-in-modus-toolbox/m-p/670791

0 点赞