跳过主要内容

请支持Makefile/cmakfile/Meson/命令行构建系统

5个月前

请支持Makefile/cmakfile/Meson/命令行构建系统

发布的andrewl2分 6份答复
1 upvote

嗨,伙计们,

我们能*请*得到一个标准的构建系统来编译这些东西吗?为了编译下面运行gcc arm工具的东西而需要运行完整的ide是愚蠢的。

我真的不在乎你选择哪个构建系统。我更喜欢介子,因为您有显式的交叉文件,VisualStudio代码可以直接从介子配置文件获取路径*但是*,我并不太在意——只要示例中的依赖路径是纯文本形式的,大多数人都可以转换为

此外,它甚至伤害了Dialog本身。在SDK6.0.14中存在一些路径问题和一些丢失的文件,如果您从命令行运行一些持续集成,这些问题可能会被捕获。

谢谢

5个月前

PM_Dialog

嗨,安德烈,

感谢您在我们的BLE公共论坛上提出的问题,也感谢您对我们的BLE解决方案感兴趣。

您能指出您正在使用的可编程设备吗?

它是DA14581(在最初的帖子中标记的),还是DA14531?

谢谢,PM_Dialog

5个月前

andrewl 2分

抱歉,不知道我怎么没看到标签。我用的是DA14531。

我不得不备份到SDK6.0.12来获取一些丢失的文件。

谢谢

5个月前

PM_Dialog

嗨,安德烈,

感谢您修改了最初的帖子。

pxp_reporter是SDK6.0.14的一个示例。Keil中的expect包括IAR和Eclipse项目。

在SDK6.0.14中有一些路径问题和一些丢失的文件,如果你从命令行运行一些持续集成,这些问题可能会被捕获。

您能否指出SDK6.0.12中包含的路径问题以及缺少哪些文件?

谢谢,PM_Dialog

5个月前

马西米兰 20分

感谢上帝。我以为只有我一个人。我无法理解为什么芯片制造商总是选择用别致的IDE“让生活变得轻松”,却总是设法实现这一目标。

我正在努力用make/gcc编译示例项目。对于我的申请,这是一个要求。它决定了天气对话框是一个可行的选择作为我们的开发平台。这有几个原因。正如Andrew所提到的,持续集成。使用从命令行运行的工具编写脚本构建管道的能力。构建工具的可用性(gcc和make可以安装在任何值得尊敬的系统上)。减少依赖项的数量,而不是项目代码,而是构建系统本身。

到目前为止,我已经能够编译大容量存储设备示例和baremetal blinky示例。

这样做很简单,只需要一点工作。我不能告诉你生成的二进制文件是否工作,因为我在等待devkit。

笔记:

设备DA1469x

文件bsp_memory_layout.h包含在特定于项目的custom_config_qspi.h中,但sdk或示例代码中没有提供。我已经删除了#include,似乎它不是必需的。

必须使用-include或-imacros gcc标志来强制包含自定义配置qspi.h。这是丑陋的(我个人的观点),因为代码中没有很好地反映这种依赖性。最好使用编译器标志在qspi和ram之间进行选择。当未定义标志时,可以使用#error给出一些输出,开发人员可以阅读代码并了解可能的选项。

msc示例要求您修改sdk文件(如文档所示)…这也不是很好,因为这意味着sdk和示例都不能开箱编译。这是一个巨大的障碍。没有什么比不能编译的例子更糟糕了……除了那些依赖于预编译的闭源二进制文件的例子;)

说到这里,libble_stack_da1469x.a有一个用于crypto_init的未定义符号。但是,我找不到任何定义它的代码。它的定义是什么?这似乎是让ble示例链接/编译的最后一个缺失部分。请让我知道我可以提供什么额外的信息。

5个月前

andrewl 2分

你不是一个人。像我们这样试图使用标准的“企业/桌面”开发工具(读作:*PROFESSIONAL*)的C语言开发者组织得不是很好,所以感觉就像没有人在那里。

如果我是一个有点不友善的人,那么对话工具的痛苦程度足以吓跑人们。我们不会首先在Dialog上开发任何东西——我们只会移植一些已经在更友好的BLE系统上调试过的东西。

不过,去看看Rust Embedded的人吧。他们已经为尝试在嵌入式上使用Rust打下了许多基础,其中包括许多基础工作,使basic C在Cortex-M和RISC-V上运行得更好。在与Visual Studio Code耦合时,我大量使用了它们的东西。

https://github.com/rust-embedded

聊天系统:https://app.element.io/#/room/#rust-embedded:matrix.org

对于我来说,将Dialog转换为命令行是特别痛苦的,就像DA14531调用到ROM的BLE堆栈。这不是一个典型的做法,所以标准的Cortex-M命令行工具、调试器和示例并没有为此而设置。这也导致了相当奇怪的代码组织,因为一切*必须*是基于回调的。我仍然没有将内容精简到命令行(阅读:介子/忍者)。

整个IDE让我特别讨厌,因为实际上我使用Keil或Eclipse之类的东西的唯一原因是运行调试器。作为代码编辑器/导航器,它们是“糟糕的”环境。

如果你让命令行工作,Maximilian,帮我们一个忙,把它上传到Github之类的东西上,如果你可以的话,这样我们就都能搞定它了。非常感谢。

谢谢

2个月前

cricke 25分

我也支持andrewl和maximilian。

NordicSemi nRF5 SDK为每个示例提供了一个简单的armgcc Makefile,这使得入门和创建可复制的构建环境变得非常简单。

因此,我认为这也是Rust Embedded社区快速创建健壮板条箱的原因,这些板条箱使北欧soc开发成为一种很棒的体验。

例如领先的Rust Embedded工具项目:https://knurling.ferrous-systems.com/培训课程使用NRF52840开发工具包。

如果不是因为有一些基于DA14683 (https://smartsensordevices.com/亚博电竞菠菜products/smart-usb-dongle-bluetooth我将使用nRF5 SDK,而不必与SmartSnippets Studio打交道。