我知道这是一个初学者问题,但我需要一些帮助。
我正在尝试使用此 SDK 进行编码:https://github.com/sullivan986/phy6252-SDK,我有几个问题:
SDK“examples”文件夹包含 uvprojx (Keil uVision) 项目文件,我建议您从那里开始,看看它们是如何设置的。 例如https://github.com/sullivan986/phy6252-SDK/tree/main/example/ble_central/simpleBleCentral
他们似乎确实使用通用 CM0 启动,但这些文件可能会在项目中针对特定部分进行修改。 您应该将示例中的这些文件与通用工具链提供的版本进行比较,或者在项目创建后将它们替换为 SDK 中的文件。
这些示例还包括一个分散文件,该文件定义了关键部件的内存映射,并且通用 CM0 支持未提供该映射。 然而,示例分散文件的不同寻常之处在于它们指定了一个额外的 ROM 区域
ER_ROM_XIP
,并显式地定位该区域中的特定目标文件和库。 我不知道为什么这样做,因为我不熟悉这个部分。我也不清楚如何或为何选择模块在自己的项目中显式定位。
这似乎是一个维护繁重且容易出错的解决方案。 通常,如果模块需要显式位置,您可以使用代码中的链接器指令来实现,而不是在分散文件中指定模块。